§BHELI / Mbed 2 deprecated Fahrradleuchte

Dependencies:   mbed

Committer:
anti2810
Date:
Mon Feb 23 14:24:41 2015 +0000
Revision:
0:63709874455b
Child:
1:4d500c8ba221
Hi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
anti2810 0:63709874455b 1 #include "mbed.h"
anti2810 0:63709874455b 2 #include "BtnEventM0.h"
anti2810 0:63709874455b 3
anti2810 0:63709874455b 4 BusOut lb(P1_7,P1_6,P1_4,P1_3,P1_1,P1_0,LED4,LED3,LED2,LED1);
anti2810 0:63709874455b 5 BusOut stLED(P1_13,P1_12);
anti2810 0:63709874455b 6
anti2810 0:63709874455b 7 BtnEventM0 Btn1(P0_15), Btn2(P0_23);
anti2810 0:63709874455b 8
anti2810 0:63709874455b 9 class FahrradLeuchte { //Eine Klasse namens FahrradLeuchte
anti2810 0:63709874455b 10 public: //Öffentlich
anti2810 0:63709874455b 11 void Init() { state=1; t1.start(); } //Beim Aufrufen wird der Status auf 1 gesetzt und der Timer t1 gestartet
anti2810 0:63709874455b 12 void State1Func(); //Funktion definieren
anti2810 0:63709874455b 13 void State2Func(); //Funktion definieren
anti2810 0:63709874455b 14 void State3Func(); //Funktion definieren
anti2810 0:63709874455b 15 public: //Öffentlich
anti2810 0:63709874455b 16 void State1Action(); //Funktion definieren
anti2810 0:63709874455b 17 void State2Action(); //Funktion definieren
anti2810 0:63709874455b 18 void State3Action(); //Funktion definieren
anti2810 0:63709874455b 19 public: //Öffentlich
anti2810 0:63709874455b 20 int state; //Integer state definieren
anti2810 0:63709874455b 21 Timer t1; //Timer t1 definieren
anti2810 0:63709874455b 22 };
anti2810 0:63709874455b 23
anti2810 0:63709874455b 24 FahrradLeuchte fl; //Klasse als Variabel aktivieren
anti2810 0:63709874455b 25
anti2810 0:63709874455b 26 int main() { //Main-Funktion
anti2810 0:63709874455b 27 lb=0; //Gesamte Ledbar auf 0 setzen
anti2810 0:63709874455b 28 Btn1.Init(); Btn2.Init(); //Btn1 und Btn2 mit Init ansprechen
anti2810 0:63709874455b 29 fl.Init();
anti2810 0:63709874455b 30 while(1)
anti2810 0:63709874455b 31 {
anti2810 0:63709874455b 32 if( fl.state==1 )
anti2810 0:63709874455b 33 fl.State1Func();
anti2810 0:63709874455b 34 if( fl.state==2 )
anti2810 0:63709874455b 35 fl.State2Func();
anti2810 0:63709874455b 36 if( fl.state==3 )
anti2810 0:63709874455b 37 fl.State3Func();
anti2810 0:63709874455b 38 }
anti2810 0:63709874455b 39
anti2810 0:63709874455b 40 }
anti2810 0:63709874455b 41
anti2810 0:63709874455b 42 void FahrradLeuchte::State1Func()
anti2810 0:63709874455b 43 {
anti2810 0:63709874455b 44 t1.reset();
anti2810 0:63709874455b 45 stLED = 1;
anti2810 0:63709874455b 46 while(1)
anti2810 0:63709874455b 47 {
anti2810 0:63709874455b 48 State1Action();
anti2810 0:63709874455b 49 if( Btn1.CheckFlag() )
anti2810 0:63709874455b 50 { state=2; return; }
anti2810 0:63709874455b 51 if( Btn2.CheckFlag() )
anti2810 0:63709874455b 52 { state=3; return; }
anti2810 0:63709874455b 53 }
anti2810 0:63709874455b 54 }
anti2810 0:63709874455b 55
anti2810 0:63709874455b 56 void FahrradLeuchte::State2Func()
anti2810 0:63709874455b 57 {
anti2810 0:63709874455b 58 t1.reset();
anti2810 0:63709874455b 59 stLED = 2;
anti2810 0:63709874455b 60 while(1)
anti2810 0:63709874455b 61 {
anti2810 0:63709874455b 62 State2Action();
anti2810 0:63709874455b 63 if( Btn1.CheckFlag() )
anti2810 0:63709874455b 64 { state=3; return; }
anti2810 0:63709874455b 65 if( Btn2.CheckFlag() )
anti2810 0:63709874455b 66 { state=1; return; }
anti2810 0:63709874455b 67 }
anti2810 0:63709874455b 68 }
anti2810 0:63709874455b 69
anti2810 0:63709874455b 70 void FahrradLeuchte::State3Func()
anti2810 0:63709874455b 71 {
anti2810 0:63709874455b 72 t1.reset();
anti2810 0:63709874455b 73 stLED = 3;
anti2810 0:63709874455b 74 while(1)
anti2810 0:63709874455b 75 {
anti2810 0:63709874455b 76 State3Action();
anti2810 0:63709874455b 77 if( Btn1.CheckFlag() )
anti2810 0:63709874455b 78 { state=1; return; }
anti2810 0:63709874455b 79 if( Btn2.CheckFlag() )
anti2810 0:63709874455b 80 { state=2; return; }
anti2810 0:63709874455b 81 }
anti2810 0:63709874455b 82 }
anti2810 0:63709874455b 83
anti2810 0:63709874455b 84 void FahrradLeuchte::State1Action()
anti2810 0:63709874455b 85 {
anti2810 0:63709874455b 86 if( t1.read_ms()<500 )
anti2810 0:63709874455b 87 return;
anti2810 0:63709874455b 88 t1.reset();
anti2810 0:63709874455b 89 if( lb==0 )
anti2810 0:63709874455b 90 lb = 512;
anti2810 0:63709874455b 91 else
anti2810 0:63709874455b 92 lb = 0;
anti2810 0:63709874455b 93 }
anti2810 0:63709874455b 94
anti2810 0:63709874455b 95 void FahrradLeuchte::State2Action()
anti2810 0:63709874455b 96 {
anti2810 0:63709874455b 97 if( t1.read_ms()<200 )
anti2810 0:63709874455b 98 return;
anti2810 0:63709874455b 99 t1.reset();
anti2810 0:63709874455b 100 if( lb==0 )
anti2810 0:63709874455b 101 lb = 256;
anti2810 0:63709874455b 102 else
anti2810 0:63709874455b 103 lb = 0;
anti2810 0:63709874455b 104 }
anti2810 0:63709874455b 105
anti2810 0:63709874455b 106 void FahrradLeuchte::State3Action()
anti2810 0:63709874455b 107 {
anti2810 0:63709874455b 108 if( t1.read_ms()<100 )
anti2810 0:63709874455b 109 return;
anti2810 0:63709874455b 110 t1.reset();
anti2810 0:63709874455b 111 if( lb==0 )
anti2810 0:63709874455b 112 lb = 128;
anti2810 0:63709874455b 113 else
anti2810 0:63709874455b 114 lb = 0;
anti2810 0:63709874455b 115 }