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