fahrrad leuchte

Dependencies:   mbed

Committer:
trivla
Date:
Mon Mar 16 15:29:47 2015 +0000
Revision:
0:de0b711c0527
fahrrad

Who changed what in which revision?

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