dfawer

Dependencies:   FuncGen Serial_HL mbed

Fork of ProcVisDemo by michael hollegha

Committer:
ogris
Date:
Tue Apr 25 06:53:30 2017 +0000
Revision:
2:7884bf7a7dae
asw

Who changed what in which revision?

UserRevisionLine numberNew 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