Michaela Knoll
/
20181025_STM_Schalter
STM_Schalter
Diff: main.cpp
- Revision:
- 0:eff81698b0a6
- Child:
- 1:e0a56154b22a
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Thu Nov 08 16:57:46 2018 +0000 @@ -0,0 +1,72 @@ +#include "mbed.h" + +DigitalOut Led1(LED1); +DigitalOut Led2(LED2); +DigitalOut Led3(LED3); +DigitalOut Led4(LED4); +DigitalIn SW2(p15); +DigitalIn SW3(p12); +DigitalIn SW4(p16); +InterruptIn SW1(p14); + +bool pressed =false; + +enum State{ST_AUS = 0, ST_EIN}; + + State state; + +void rise(void) +{pressed =true;} + +bool CheckFlag(){ + if (pressed){ + pressed = false; + return true;} + return false; + } + + + void blink(void) + {for(int i=0;i<4;i++) +{if(i<4) +Led4=!Led4;}} + +void ST_Ein(void) +{ while(true){ +Led1 =1; +blink(); + +if(CheckFlag()) +{state = ST_AUS; +return;} +}} + +void ST_Aus(void) +{ + while(true){ +Led1 =0; +if (CheckFlag()) +{state = ST_EIN; +return;}}} + +void stateMachine() +{ + switch (state) + {case ST_AUS:ST_Aus(); + break; + case ST_EIN: ST_Ein(); + break; + //default: ST_Error(); + // break; + }} + + + +int main() { + + SW1.rise(&rise); + while(1) + {stateMachine();} + + } +