This program uses a state machine with an if|else. Just an exercise.

Dependencies:   mbed

Committer:
Jamess
Date:
Thu May 28 18:05:21 2015 +0000
Revision:
0:59b7da6bb864
First Example in how to use state machines in c. Using if|else;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jamess 0:59b7da6bb864 1 /*****************************************************************/
Jamess 0:59b7da6bb864 2 /* How to use State Machines in C */
Jamess 0:59b7da6bb864 3 /* If | Else */
Jamess 0:59b7da6bb864 4 /*****************************************************************/
Jamess 0:59b7da6bb864 5
Jamess 0:59b7da6bb864 6 //Librarys:
Jamess 0:59b7da6bb864 7 #include "mbed.h"
Jamess 0:59b7da6bb864 8
Jamess 0:59b7da6bb864 9 //Outputs:
Jamess 0:59b7da6bb864 10 DigitalOut red(LED1);
Jamess 0:59b7da6bb864 11 DigitalOut green(LED2);
Jamess 0:59b7da6bb864 12 DigitalOut blue(LED3);
Jamess 0:59b7da6bb864 13
Jamess 0:59b7da6bb864 14 //Functions:
Jamess 0:59b7da6bb864 15
Jamess 0:59b7da6bb864 16 int main() {
Jamess 0:59b7da6bb864 17
Jamess 0:59b7da6bb864 18 /**************VARIABLES**************/
Jamess 0:59b7da6bb864 19 enum states{
Jamess 0:59b7da6bb864 20 LED_GREEN,
Jamess 0:59b7da6bb864 21 LED_BLUE,
Jamess 0:59b7da6bb864 22 LED_RED
Jamess 0:59b7da6bb864 23 };
Jamess 0:59b7da6bb864 24 enum states state = LED_GREEN;
Jamess 0:59b7da6bb864 25
Jamess 0:59b7da6bb864 26 /***************ESTADOS***************/
Jamess 0:59b7da6bb864 27
Jamess 0:59b7da6bb864 28 while(1){
Jamess 0:59b7da6bb864 29 if (state == LED_GREEN){
Jamess 0:59b7da6bb864 30
Jamess 0:59b7da6bb864 31 green=1;
Jamess 0:59b7da6bb864 32 blue=0;
Jamess 0:59b7da6bb864 33 red=0;
Jamess 0:59b7da6bb864 34 state = LED_BLUE;
Jamess 0:59b7da6bb864 35 wait(1);
Jamess 0:59b7da6bb864 36
Jamess 0:59b7da6bb864 37 }else if(state == LED_BLUE){
Jamess 0:59b7da6bb864 38
Jamess 0:59b7da6bb864 39 green=0;
Jamess 0:59b7da6bb864 40 blue=1;
Jamess 0:59b7da6bb864 41 red=0;
Jamess 0:59b7da6bb864 42 state = LED_RED;
Jamess 0:59b7da6bb864 43 wait(1);
Jamess 0:59b7da6bb864 44
Jamess 0:59b7da6bb864 45 }else if(state == LED_RED){
Jamess 0:59b7da6bb864 46
Jamess 0:59b7da6bb864 47 green=0;
Jamess 0:59b7da6bb864 48 blue=0;
Jamess 0:59b7da6bb864 49 red=1;
Jamess 0:59b7da6bb864 50 state = LED_GREEN;
Jamess 0:59b7da6bb864 51 wait(1);
Jamess 0:59b7da6bb864 52
Jamess 0:59b7da6bb864 53 }
Jamess 0:59b7da6bb864 54
Jamess 0:59b7da6bb864 55 }//end of while
Jamess 0:59b7da6bb864 56 }//end of main
Jamess 0:59b7da6bb864 57
Jamess 0:59b7da6bb864 58 /************************************/