Check Flag

Dependencies:   mbed

Committer:
hollegha2
Date:
Wed Feb 01 07:16:21 2017 +0000
Revision:
8:e2f768aad0a6
Parent:
7:d6677cae0add
Child:
9:813c361e38fc
xx4

Who changed what in which revision?

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