Fahrradleuchte
Dependencies: mbed
main.cpp@0:d715cbadd410, 2016-11-16 (annotated)
- 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?
User | Revision | Line number | New 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 | } |