Thiago .
/
StateMachine_1
This program uses a state machine with an if|else. Just an exercise.
main.cpp@0:59b7da6bb864, 2015-05-28 (annotated)
- 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?
User | Revision | Line number | New 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 | /************************************/ |