button procedure library

Dependents:   MIDI_CW Gemphet8

Committer:
ChuckTimber
Date:
Sun Jul 13 05:12:21 2014 +0000
Revision:
0:f57033bb0e05
Child:
1:20c8438edaee
button lib version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ChuckTimber 0:f57033bb0e05 1 #include "button.h"
ChuckTimber 0:f57033bb0e05 2 #include "mbed.h"
ChuckTimber 0:f57033bb0e05 3
ChuckTimber 0:f57033bb0e05 4 /** class to make sound with a buzzer, based on a PwmOut
ChuckTimber 0:f57033bb0e05 5 * The class use a timeout to switch off the sound - it is not blocking while making noise
ChuckTimber 0:f57033bb0e05 6 *
ChuckTimber 0:f57033bb0e05 7 * Example:
ChuckTimber 0:f57033bb0e05 8 * @code
ChuckTimber 0:f57033bb0e05 9 * @endcode
ChuckTimber 0:f57033bb0e05 10 */
ChuckTimber 0:f57033bb0e05 11
ChuckTimber 0:f57033bb0e05 12 using namespace mbed;
ChuckTimber 0:f57033bb0e05 13 // constructor
ChuckTimber 0:f57033bb0e05 14 /** Create a Beep object connected to the specified PwmOut pin
ChuckTimber 0:f57033bb0e05 15 *
ChuckTimber 0:f57033bb0e05 16 * @param pin PwmOut pin to connect to
ChuckTimber 0:f57033bb0e05 17 */
ChuckTimber 0:f57033bb0e05 18
ChuckTimber 0:f57033bb0e05 19 void BTN::sample_btn()
ChuckTimber 0:f57033bb0e05 20 {
ChuckTimber 0:f57033bb0e05 21 unsigned char a, b;
ChuckTimber 0:f57033bb0e05 22
ChuckTimber 0:f57033bb0e05 23 a = _Pin;
ChuckTimber 0:f57033bb0e05 24
ChuckTimber 0:f57033bb0e05 25 if (a == FIL) {
ChuckTimber 0:f57033bb0e05 26 b = STAT;
ChuckTimber 0:f57033bb0e05 27 STAT = a;
ChuckTimber 0:f57033bb0e05 28 b = (b ^ a) & a;
ChuckTimber 0:f57033bb0e05 29 if (b) CMD = b;
ChuckTimber 0:f57033bb0e05 30 }
ChuckTimber 0:f57033bb0e05 31 FIL = a;
ChuckTimber 0:f57033bb0e05 32 }
ChuckTimber 0:f57033bb0e05 33
ChuckTimber 0:f57033bb0e05 34 BTN::BTN(PinName pin) : _Pin(pin) {
ChuckTimber 0:f57033bb0e05 35 CMD = STAT = FIL = 0;
ChuckTimber 0:f57033bb0e05 36 _Tick.attach(this, &BTN::sample_btn, 0.01);
ChuckTimber 0:f57033bb0e05 37 }