button procedure library
button.h@2:df827b705b98, 2014-08-07 (annotated)
- 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?
User | Revision | Line number | New 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 |