STM_Schalter

Dependencies:   mbed

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();}
+    
+    }
+