AMPEL_SourceCode

Dependencies:   mbed

Fork of LAB_Ampel by Rudi Niki

Committer:
RudiNiki
Date:
Mon Feb 01 17:32:08 2016 +0000
Revision:
1:3be6e3390f29
Parent:
0:f93bf3159778
ampel

Who changed what in which revision?

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