Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:63709874455b, 2015-02-23 (annotated)
- Committer:
- anti2810
- Date:
- Mon Feb 23 14:24:41 2015 +0000
- Revision:
- 0:63709874455b
- Child:
- 1:4d500c8ba221
Hi
Who changed what in which revision?
| User | Revision | Line number | New 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 | } |