Check Flag

Dependencies:   mbed

Committer:
hollegha2
Date:
Thu Jan 29 07:03:32 2015 +0000
Revision:
7:d6677cae0add
Parent:
6:cc64c2ff26b0
Child:
8:e2f768aad0a6
CheckButton()   and some Comments

Who changed what in which revision?

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