SChuleEE 1
/
mbed_linie
wr
BtnEventM0.h
- Committer:
- manuelschnider
- Date:
- 2016-06-14
- Revision:
- 0:a8e2201d9c4d
File content as of revision 0:a8e2201d9c4d:
class BtnEventM0 { public: int16_t pressed; BtnEventM0(PinName pin) : _isr(pin) { pressed=0; } // Ist eine steigende Flanke aufgetreten ? int CheckFlag() { if( pressed ) { pressed=0; return 1; } return 0; } // 1..Button is pressed else 0 int CheckButton() { return _isr.read(); } void Init() { _isr.rise(this, &BtnEventM0::RisingISR); } void RisingISR() { if( _isr.read() ) pressed = 1; } protected: InterruptIn _isr; }; /* class BtnEventM02 : public BtnEventM0 { public: BtnEventM02(PinName pin) : BtnEventM0(pin) { _tm.stop(); _tm.reset(); _state=1; } void Init() { _isr.rise(this, &BtnEventM02::RisingISR); } void RisingISR() { if( !_isr.read() ) return; pressed = 1; _tm.start(); _state = 2; } void CheckButton() { if( _state==1 ) return; if( _state==2 ) { if( !_isr.read() ) { _state = 1; return; } if( _tm.read_ms()>500 ) { _tm.reset(); _state = 3; pressed = 1; } } else if( _state==3 ) { if( !_isr.read() ) { _state = 1; return; } if( _tm.read_ms()>100 ) { _tm.reset(); _state = 3; pressed = 1; } } } private: int16_t _state; Timer _tm; }; */ class AnalogInHL : public AnalogIn { public: AnalogInHL(PinName pin) : AnalogIn(pin) { } int Read() { return read_u16()>>6; } };