button procedure library

Dependents:   MIDI_CW Gemphet8

Committer:
ChuckTimber
Date:
Thu Aug 07 00:49:43 2014 +0000
Revision:
2:df827b705b98
Parent:
1:20c8438edaee
Child:
3:1c47d318e457
Modified documents

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ChuckTimber 0:f57033bb0e05 1 #ifndef MBED_BUTTON_H
ChuckTimber 0:f57033bb0e05 2 #define MBED_BUTTON_H
ChuckTimber 0:f57033bb0e05 3
ChuckTimber 0:f57033bb0e05 4 #include "mbed.h"
ChuckTimber 0:f57033bb0e05 5
ChuckTimber 2:df827b705b98 6 /** @file class to handle button input
ChuckTimber 1:20c8438edaee 7 * The class use DigitalIn and Ticker
ChuckTimber 1:20c8438edaee 8 *
ChuckTimber 1:20c8438edaee 9 * Refered to: http://elm-chan.org/docs/tec/te03.html
ChuckTimber 0:f57033bb0e05 10 *
ChuckTimber 0:f57033bb0e05 11 * Example:
ChuckTimber 0:f57033bb0e05 12 * @code
ChuckTimber 1:20c8438edaee 13 * // Button sample
ChuckTimber 1:20c8438edaee 14 * #include "mbed.h"
ChuckTimber 1:20c8438edaee 15 * #include "button.h"
ChuckTimber 1:20c8438edaee 16 *
ChuckTimber 1:20c8438edaee 17 * BTN btn(dp13);
ChuckTimber 1:20c8438edaee 18 *
ChuckTimber 1:20c8438edaee 19 * int main()
ChuckTimber 1:20c8438edaee 20 * {
ChuckTimber 1:20c8438edaee 21 * int mode = 0;
ChuckTimber 1:20c8438edaee 22 * int value;
ChuckTimber 1:20c8438edaee 23 *
ChuckTimber 1:20c8438edaee 24 * btn.CMD = 0;
ChuckTimber 1:20c8438edaee 25 * while(1) {
ChuckTimber 1:20c8438edaee 26 * if(btn.CMD) {
ChuckTimber 1:20c8438edaee 27 * mode++;
ChuckTimber 1:20c8438edaee 28 * btn.CMD = 0;
ChuckTimber 1:20c8438edaee 29 * srand( time(NULL) );
ChuckTimber 1:20c8438edaee 30 * }
ChuckTimber 1:20c8438edaee 31 * if (mode % 2) value = rand();
ChuckTimber 1:20c8438edaee 32 * }
ChuckTimber 1:20c8438edaee 33 * }
ChuckTimber 0:f57033bb0e05 34 * @endcode
ChuckTimber 0:f57033bb0e05 35 */
ChuckTimber 0:f57033bb0e05 36
ChuckTimber 1:20c8438edaee 37 #define BTN_SAMPLING_PERIOD 0.01
ChuckTimber 0:f57033bb0e05 38
ChuckTimber 0:f57033bb0e05 39 namespace mbed {
ChuckTimber 0:f57033bb0e05 40
ChuckTimber 0:f57033bb0e05 41 /* Class: BTN
ChuckTimber 1:20c8438edaee 42 * A class which uses DigitalIn and Ticker
ChuckTimber 0:f57033bb0e05 43 */
ChuckTimber 0:f57033bb0e05 44 class BTN {
ChuckTimber 0:f57033bb0e05 45
ChuckTimber 0:f57033bb0e05 46 public:
ChuckTimber 0:f57033bb0e05 47 BTN(PinName pin);
ChuckTimber 0:f57033bb0e05 48 unsigned char CMD;
ChuckTimber 0:f57033bb0e05 49 unsigned char STAT;
ChuckTimber 0:f57033bb0e05 50
ChuckTimber 0:f57033bb0e05 51 private:
ChuckTimber 0:f57033bb0e05 52 void sample_btn(void);
ChuckTimber 0:f57033bb0e05 53 unsigned char FIL;
ChuckTimber 0:f57033bb0e05 54 DigitalIn _Pin;
ChuckTimber 0:f57033bb0e05 55 Ticker _Tick;
ChuckTimber 0:f57033bb0e05 56
ChuckTimber 0:f57033bb0e05 57 };
ChuckTimber 0:f57033bb0e05 58
ChuckTimber 0:f57033bb0e05 59 }
ChuckTimber 0:f57033bb0e05 60 #endif