Fahrradleuchte

Dependencies:   mbed

Committer:
david22
Date:
Wed Nov 16 10:58:26 2016 +0000
Revision:
0:d715cbadd410
Richtiges Projekt f?r 3CHEL

Who changed what in which revision?

UserRevisionLine numberNew contents of line
david22 0:d715cbadd410 1 #include "mbed.h"
david22 0:d715cbadd410 2 #include "BtnEventM0.h"
david22 0:d715cbadd410 3
david22 0:d715cbadd410 4 BusOut lb(P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1);
david22 0:d715cbadd410 5 BusOut stLED(P1_13,P1_12);
david22 0:d715cbadd410 6 BtnEventM0 sw4(P1_16), sw3(P0_23);
david22 0:d715cbadd410 7
david22 0:d715cbadd410 8
david22 0:d715cbadd410 9 class Fahrradleuchte{
david22 0:d715cbadd410 10 public:
david22 0:d715cbadd410 11 void Init()
david22 0:d715cbadd410 12 {
david22 0:d715cbadd410 13 state=1; t1.start();
david22 0:d715cbadd410 14 }
david22 0:d715cbadd410 15 void State1Func();
david22 0:d715cbadd410 16 void State2Func();
david22 0:d715cbadd410 17 void State3Func();
david22 0:d715cbadd410 18 public:
david22 0:d715cbadd410 19 void State1Action(); // Bit0 (LED) mit 10Hz blinken
david22 0:d715cbadd410 20 void State2Action(); // Bit2 (LED) mit 5Hz blinken
david22 0:d715cbadd410 21 void State3Action(); // Bit3 (LED) mit 2Hz blinken
david22 0:d715cbadd410 22 public:
david22 0:d715cbadd410 23 int state; // State sagt uns in welchem Zustand sich die Fahrradleuchte gerade befindet
david22 0:d715cbadd410 24 Timer t1;
david22 0:d715cbadd410 25 };
david22 0:d715cbadd410 26
david22 0:d715cbadd410 27 // Ein Objekt Fahrradleuchte anlegen
david22 0:d715cbadd410 28 Fahrradleuchte fl;
david22 0:d715cbadd410 29
david22 0:d715cbadd410 30 int main(void)
david22 0:d715cbadd410 31 {
david22 0:d715cbadd410 32 sw3.Init(); sw4.Init();
david22 0:d715cbadd410 33 lb=0;
david22 0:d715cbadd410 34 while(1)
david22 0:d715cbadd410 35 {
david22 0:d715cbadd410 36 if(fl.state==1)
david22 0:d715cbadd410 37 {fl.State1Func();}
david22 0:d715cbadd410 38 if(fl.state==2)
david22 0:d715cbadd410 39 {fl.State2Func();}
david22 0:d715cbadd410 40 if(fl.state==3)
david22 0:d715cbadd410 41 {fl.State3Func();}
david22 0:d715cbadd410 42 }
david22 0:d715cbadd410 43 }
david22 0:d715cbadd410 44
david22 0:d715cbadd410 45 void Fahrradleuchte::State1Func()
david22 0:d715cbadd410 46 {
david22 0:d715cbadd410 47 // Einmalige Aktion die beim Eintrit in die Funktion nötig sind
david22 0:d715cbadd410 48 stLED=1;
david22 0:d715cbadd410 49
david22 0:d715cbadd410 50 //
david22 0:d715cbadd410 51
david22 0:d715cbadd410 52 while(1)
david22 0:d715cbadd410 53 {
david22 0:d715cbadd410 54 State1Action();
david22 0:d715cbadd410 55 if(sw4.CheckFlag() ) // Btn's abfragen und möglicherweise Zustand ändern
david22 0:d715cbadd410 56 {
david22 0:d715cbadd410 57 state=2;
david22 0:d715cbadd410 58 return;
david22 0:d715cbadd410 59 }
david22 0:d715cbadd410 60 if(sw3.CheckFlag() )
david22 0:d715cbadd410 61 {
david22 0:d715cbadd410 62 state=3; return;
david22 0:d715cbadd410 63 }
david22 0:d715cbadd410 64 }
david22 0:d715cbadd410 65 }
david22 0:d715cbadd410 66
david22 0:d715cbadd410 67 void Fahrradleuchte::State1Action()
david22 0:d715cbadd410 68 {
david22 0:d715cbadd410 69 if(t1.read_ms()>100)
david22 0:d715cbadd410 70 {
david22 0:d715cbadd410 71 t1.reset();
david22 0:d715cbadd410 72 if(lb==0)
david22 0:d715cbadd410 73 lb= 1; // Mit Bit0 blinken
david22 0:d715cbadd410 74 else
david22 0:d715cbadd410 75 lb=0;
david22 0:d715cbadd410 76 }
david22 0:d715cbadd410 77 }
david22 0:d715cbadd410 78
david22 0:d715cbadd410 79 void Fahrradleuchte::State2Func()
david22 0:d715cbadd410 80 {
david22 0:d715cbadd410 81
david22 0:d715cbadd410 82 }
david22 0:d715cbadd410 83
david22 0:d715cbadd410 84 void Fahrradleuchte::State3Func()
david22 0:d715cbadd410 85 {
david22 0:d715cbadd410 86
david22 0:d715cbadd410 87 }