Fahrradleuchte

Dependencies:   mbed

Committer:
markusammer1992
Date:
Thu Jan 22 19:03:22 2015 +0000
Revision:
0:d5266079fbc9
Fahrradleuchte;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
markusammer1992 0:d5266079fbc9 1
markusammer1992 0:d5266079fbc9 2
markusammer1992 0:d5266079fbc9 3 class BtnEventM0
markusammer1992 0:d5266079fbc9 4 {
markusammer1992 0:d5266079fbc9 5 public:
markusammer1992 0:d5266079fbc9 6 int16_t pressed;
markusammer1992 0:d5266079fbc9 7
markusammer1992 0:d5266079fbc9 8 BtnEventM0(PinName pin) : _isr(pin) {
markusammer1992 0:d5266079fbc9 9 pressed=0;
markusammer1992 0:d5266079fbc9 10 }
markusammer1992 0:d5266079fbc9 11
markusammer1992 0:d5266079fbc9 12 int CheckFlag() {
markusammer1992 0:d5266079fbc9 13 if( pressed ) {
markusammer1992 0:d5266079fbc9 14 pressed=0;
markusammer1992 0:d5266079fbc9 15 return 1;
markusammer1992 0:d5266079fbc9 16 }
markusammer1992 0:d5266079fbc9 17 return 0;
markusammer1992 0:d5266079fbc9 18 }
markusammer1992 0:d5266079fbc9 19
markusammer1992 0:d5266079fbc9 20 void CheckButton() {
markusammer1992 0:d5266079fbc9 21 if( _isr.read() )
markusammer1992 0:d5266079fbc9 22 pressed = 1;
markusammer1992 0:d5266079fbc9 23 }
markusammer1992 0:d5266079fbc9 24
markusammer1992 0:d5266079fbc9 25 void Init() {
markusammer1992 0:d5266079fbc9 26 _isr.rise(this, &BtnEventM0::RisingISR);
markusammer1992 0:d5266079fbc9 27 }
markusammer1992 0:d5266079fbc9 28
markusammer1992 0:d5266079fbc9 29 void RisingISR() {
markusammer1992 0:d5266079fbc9 30 if( _isr.read() )
markusammer1992 0:d5266079fbc9 31 pressed = 1;
markusammer1992 0:d5266079fbc9 32 }
markusammer1992 0:d5266079fbc9 33 protected:
markusammer1992 0:d5266079fbc9 34 InterruptIn _isr;
markusammer1992 0:d5266079fbc9 35 };
markusammer1992 0:d5266079fbc9 36
markusammer1992 0:d5266079fbc9 37 /*
markusammer1992 0:d5266079fbc9 38 class BtnEventM02 : public BtnEventM0
markusammer1992 0:d5266079fbc9 39 {
markusammer1992 0:d5266079fbc9 40 public:
markusammer1992 0:d5266079fbc9 41 BtnEventM02(PinName pin) : BtnEventM0(pin) {
markusammer1992 0:d5266079fbc9 42 _tm.stop();
markusammer1992 0:d5266079fbc9 43 _tm.reset();
markusammer1992 0:d5266079fbc9 44 _state=1;
markusammer1992 0:d5266079fbc9 45 }
markusammer1992 0:d5266079fbc9 46
markusammer1992 0:d5266079fbc9 47 void Init() {
markusammer1992 0:d5266079fbc9 48 _isr.rise(this, &BtnEventM02::RisingISR);
markusammer1992 0:d5266079fbc9 49 }
markusammer1992 0:d5266079fbc9 50
markusammer1992 0:d5266079fbc9 51 void RisingISR() {
markusammer1992 0:d5266079fbc9 52 if( !_isr.read() )
markusammer1992 0:d5266079fbc9 53 return;
markusammer1992 0:d5266079fbc9 54 pressed = 1;
markusammer1992 0:d5266079fbc9 55 _tm.start();
markusammer1992 0:d5266079fbc9 56 _state = 2;
markusammer1992 0:d5266079fbc9 57 }
markusammer1992 0:d5266079fbc9 58
markusammer1992 0:d5266079fbc9 59 void CheckButton() {
markusammer1992 0:d5266079fbc9 60 if( _state==1 )
markusammer1992 0:d5266079fbc9 61 return;
markusammer1992 0:d5266079fbc9 62 if( _state==2 ) {
markusammer1992 0:d5266079fbc9 63 if( !_isr.read() ) {
markusammer1992 0:d5266079fbc9 64 _state = 1;
markusammer1992 0:d5266079fbc9 65 return;
markusammer1992 0:d5266079fbc9 66 }
markusammer1992 0:d5266079fbc9 67 if( _tm.read_ms()>500 ) {
markusammer1992 0:d5266079fbc9 68 _tm.reset();
markusammer1992 0:d5266079fbc9 69 _state = 3;
markusammer1992 0:d5266079fbc9 70 pressed = 1;
markusammer1992 0:d5266079fbc9 71 }
markusammer1992 0:d5266079fbc9 72 } else if( _state==3 ) {
markusammer1992 0:d5266079fbc9 73 if( !_isr.read() ) {
markusammer1992 0:d5266079fbc9 74 _state = 1;
markusammer1992 0:d5266079fbc9 75 return;
markusammer1992 0:d5266079fbc9 76 }
markusammer1992 0:d5266079fbc9 77 if( _tm.read_ms()>100 ) {
markusammer1992 0:d5266079fbc9 78 _tm.reset();
markusammer1992 0:d5266079fbc9 79 _state = 3;
markusammer1992 0:d5266079fbc9 80 pressed = 1;
markusammer1992 0:d5266079fbc9 81 }
markusammer1992 0:d5266079fbc9 82 }
markusammer1992 0:d5266079fbc9 83 }
markusammer1992 0:d5266079fbc9 84 private:
markusammer1992 0:d5266079fbc9 85 int16_t _state;
markusammer1992 0:d5266079fbc9 86 Timer _tm;
markusammer1992 0:d5266079fbc9 87 };
markusammer1992 0:d5266079fbc9 88 */
markusammer1992 0:d5266079fbc9 89
markusammer1992 0:d5266079fbc9 90
markusammer1992 0:d5266079fbc9 91
markusammer1992 0:d5266079fbc9 92
markusammer1992 0:d5266079fbc9 93
markusammer1992 0:d5266079fbc9 94
markusammer1992 0:d5266079fbc9 95
markusammer1992 0:d5266079fbc9 96
markusammer1992 0:d5266079fbc9 97
markusammer1992 0:d5266079fbc9 98
markusammer1992 0:d5266079fbc9 99
markusammer1992 0:d5266079fbc9 100
markusammer1992 0:d5266079fbc9 101
markusammer1992 0:d5266079fbc9 102
markusammer1992 0:d5266079fbc9 103
markusammer1992 0:d5266079fbc9 104
markusammer1992 0:d5266079fbc9 105
markusammer1992 0:d5266079fbc9 106
markusammer1992 0:d5266079fbc9 107
markusammer1992 0:d5266079fbc9 108
markusammer1992 0:d5266079fbc9 109
markusammer1992 0:d5266079fbc9 110
markusammer1992 0:d5266079fbc9 111
markusammer1992 0:d5266079fbc9 112
markusammer1992 0:d5266079fbc9 113
markusammer1992 0:d5266079fbc9 114
markusammer1992 0:d5266079fbc9 115
markusammer1992 0:d5266079fbc9 116
markusammer1992 0:d5266079fbc9 117
markusammer1992 0:d5266079fbc9 118
markusammer1992 0:d5266079fbc9 119
markusammer1992 0:d5266079fbc9 120
markusammer1992 0:d5266079fbc9 121
markusammer1992 0:d5266079fbc9 122
markusammer1992 0:d5266079fbc9 123
markusammer1992 0:d5266079fbc9 124
markusammer1992 0:d5266079fbc9 125
markusammer1992 0:d5266079fbc9 126
markusammer1992 0:d5266079fbc9 127
markusammer1992 0:d5266079fbc9 128
markusammer1992 0:d5266079fbc9 129
markusammer1992 0:d5266079fbc9 130
markusammer1992 0:d5266079fbc9 131
markusammer1992 0:d5266079fbc9 132