lalalala

Dependencies:   mbed

Committer:
DoTTi
Date:
Thu Dec 07 10:01:15 2017 +0000
Revision:
0:1285025ec711
llalal;

Who changed what in which revision?

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