Thiago . / Mbed 2 deprecated StateMachine_2

Dependencies:   mbed

Committer:
Jamess
Date:
Thu May 28 18:37:18 2015 +0000
Revision:
0:7cd6baddb768
How to use a state machine with Switch Case;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Jamess 0:7cd6baddb768 1 /*****************************************************************/
Jamess 0:7cd6baddb768 2 /* How to use State Machines in C */
Jamess 0:7cd6baddb768 3 /* Switch|Case */
Jamess 0:7cd6baddb768 4 /*****************************************************************/
Jamess 0:7cd6baddb768 5
Jamess 0:7cd6baddb768 6 // Librarys:
Jamess 0:7cd6baddb768 7 #include "mbed.h"
Jamess 0:7cd6baddb768 8
Jamess 0:7cd6baddb768 9 // Configuration:
Jamess 0:7cd6baddb768 10 DigitalOut led(LED1);
Jamess 0:7cd6baddb768 11 Serial pc(USBTX,USBRX);
Jamess 0:7cd6baddb768 12
Jamess 0:7cd6baddb768 13 //Functions
Jamess 0:7cd6baddb768 14
Jamess 0:7cd6baddb768 15
Jamess 0:7cd6baddb768 16 int main(){
Jamess 0:7cd6baddb768 17 /************STATES**************/
Jamess 0:7cd6baddb768 18 enum states{
Jamess 0:7cd6baddb768 19 LED_OF_1S,
Jamess 0:7cd6baddb768 20 LED_ON_2S,
Jamess 0:7cd6baddb768 21 LED_OF_3S,
Jamess 0:7cd6baddb768 22 LED_ON_4S
Jamess 0:7cd6baddb768 23 };
Jamess 0:7cd6baddb768 24 enum states state = LED_OF_1S;
Jamess 0:7cd6baddb768 25 while(1){
Jamess 0:7cd6baddb768 26 switch(state){
Jamess 0:7cd6baddb768 27 case LED_OF_1S:
Jamess 0:7cd6baddb768 28
Jamess 0:7cd6baddb768 29 //Led off for 1 second:
Jamess 0:7cd6baddb768 30 led=0;
Jamess 0:7cd6baddb768 31 pc.printf("LED_OF");
Jamess 0:7cd6baddb768 32 wait(1);
Jamess 0:7cd6baddb768 33 state = LED_ON_2S;
Jamess 0:7cd6baddb768 34
Jamess 0:7cd6baddb768 35 break;
Jamess 0:7cd6baddb768 36 case LED_ON_2S:
Jamess 0:7cd6baddb768 37
Jamess 0:7cd6baddb768 38 //Led on for 2 seconds:
Jamess 0:7cd6baddb768 39 led=1;
Jamess 0:7cd6baddb768 40 pc.printf("LED_ON");
Jamess 0:7cd6baddb768 41 wait(2);
Jamess 0:7cd6baddb768 42 state = LED_OF_3S;
Jamess 0:7cd6baddb768 43
Jamess 0:7cd6baddb768 44 break;
Jamess 0:7cd6baddb768 45 case LED_OF_3S:
Jamess 0:7cd6baddb768 46
Jamess 0:7cd6baddb768 47 //Led off for 3 seconds:
Jamess 0:7cd6baddb768 48 led=0;
Jamess 0:7cd6baddb768 49 pc.printf("LED_OF");
Jamess 0:7cd6baddb768 50 wait(3);
Jamess 0:7cd6baddb768 51 state = LED_ON_4S;
Jamess 0:7cd6baddb768 52 break;
Jamess 0:7cd6baddb768 53 case LED_ON_4S:
Jamess 0:7cd6baddb768 54
Jamess 0:7cd6baddb768 55 //Led on for 4 seconds:
Jamess 0:7cd6baddb768 56 led=1;
Jamess 0:7cd6baddb768 57 pc.printf("LED_ON");
Jamess 0:7cd6baddb768 58 wait(4);
Jamess 0:7cd6baddb768 59 state = LED_OF_1S;
Jamess 0:7cd6baddb768 60 break;
Jamess 0:7cd6baddb768 61 }
Jamess 0:7cd6baddb768 62 }
Jamess 0:7cd6baddb768 63 }
Jamess 0:7cd6baddb768 64