Fahrradleuchte

Dependencies:   mbed

Committer:
richardkraus
Date:
Wed Nov 16 11:01:34 2016 +0000
Revision:
0:df07211ac148
FahrradLeuchte

Who changed what in which revision?

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