button procedure library
button.h@4:d6a45bd85a43, 2014-08-09 (annotated)
- Committer:
- ChuckTimber
- Date:
- Sat Aug 09 04:37:50 2014 +0000
- Revision:
- 4:d6a45bd85a43
- Parent:
- 3:1c47d318e457
- Child:
- 6:b6a97933b3d5
Fixed switch polarity.
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 | 3:1c47d318e457 | 6 | /** |
ChuckTimber | 3:1c47d318e457 | 7 | * @file button.h |
ChuckTimber | 3:1c47d318e457 | 8 | * Project button handling Library |
ChuckTimber | 3:1c47d318e457 | 9 | * @brief button handling library for mbed |
ChuckTimber | 3:1c47d318e457 | 10 | * @version 1.0 |
ChuckTimber | 3:1c47d318e457 | 11 | * @author Chuck Timber |
ChuckTimber | 3:1c47d318e457 | 12 | * @date 07/08/2014 |
ChuckTimber | 3:1c47d318e457 | 13 | */ |
ChuckTimber | 3:1c47d318e457 | 14 | |
ChuckTimber | 3:1c47d318e457 | 15 | /** class to handle button input |
ChuckTimber | 1:20c8438edaee | 16 | * The class use DigitalIn and Ticker |
ChuckTimber | 1:20c8438edaee | 17 | * |
ChuckTimber | 1:20c8438edaee | 18 | * Refered to: http://elm-chan.org/docs/tec/te03.html |
ChuckTimber | 0:f57033bb0e05 | 19 | * |
ChuckTimber | 0:f57033bb0e05 | 20 | * Example: |
ChuckTimber | 0:f57033bb0e05 | 21 | * @code |
ChuckTimber | 1:20c8438edaee | 22 | * // Button sample |
ChuckTimber | 1:20c8438edaee | 23 | * #include "mbed.h" |
ChuckTimber | 1:20c8438edaee | 24 | * #include "button.h" |
ChuckTimber | 1:20c8438edaee | 25 | * |
ChuckTimber | 1:20c8438edaee | 26 | * BTN btn(dp13); |
ChuckTimber | 1:20c8438edaee | 27 | * |
ChuckTimber | 1:20c8438edaee | 28 | * int main() |
ChuckTimber | 1:20c8438edaee | 29 | * { |
ChuckTimber | 1:20c8438edaee | 30 | * int mode = 0; |
ChuckTimber | 1:20c8438edaee | 31 | * int value; |
ChuckTimber | 1:20c8438edaee | 32 | * |
ChuckTimber | 1:20c8438edaee | 33 | * btn.CMD = 0; |
ChuckTimber | 1:20c8438edaee | 34 | * while(1) { |
ChuckTimber | 1:20c8438edaee | 35 | * if(btn.CMD) { |
ChuckTimber | 1:20c8438edaee | 36 | * mode++; |
ChuckTimber | 1:20c8438edaee | 37 | * btn.CMD = 0; |
ChuckTimber | 1:20c8438edaee | 38 | * srand( time(NULL) ); |
ChuckTimber | 1:20c8438edaee | 39 | * } |
ChuckTimber | 1:20c8438edaee | 40 | * if (mode % 2) value = rand(); |
ChuckTimber | 1:20c8438edaee | 41 | * } |
ChuckTimber | 1:20c8438edaee | 42 | * } |
ChuckTimber | 0:f57033bb0e05 | 43 | * @endcode |
ChuckTimber | 0:f57033bb0e05 | 44 | */ |
ChuckTimber | 0:f57033bb0e05 | 45 | |
ChuckTimber | 1:20c8438edaee | 46 | #define BTN_SAMPLING_PERIOD 0.01 |
ChuckTimber | 0:f57033bb0e05 | 47 | |
ChuckTimber | 0:f57033bb0e05 | 48 | namespace mbed { |
ChuckTimber | 0:f57033bb0e05 | 49 | |
ChuckTimber | 3:1c47d318e457 | 50 | /** Class: BTN |
ChuckTimber | 3:1c47d318e457 | 51 | * A class handles button input procedure, which uses DigitalIn and Ticker |
ChuckTimber | 0:f57033bb0e05 | 52 | */ |
ChuckTimber | 0:f57033bb0e05 | 53 | class BTN { |
ChuckTimber | 0:f57033bb0e05 | 54 | |
ChuckTimber | 0:f57033bb0e05 | 55 | public: |
ChuckTimber | 0:f57033bb0e05 | 56 | BTN(PinName pin); |
ChuckTimber | 0:f57033bb0e05 | 57 | unsigned char CMD; |
ChuckTimber | 0:f57033bb0e05 | 58 | unsigned char STAT; |
ChuckTimber | 0:f57033bb0e05 | 59 | |
ChuckTimber | 0:f57033bb0e05 | 60 | private: |
ChuckTimber | 3:1c47d318e457 | 61 | /** sample_btn input and process */ |
ChuckTimber | 0:f57033bb0e05 | 62 | void sample_btn(void); |
ChuckTimber | 0:f57033bb0e05 | 63 | unsigned char FIL; |
ChuckTimber | 0:f57033bb0e05 | 64 | DigitalIn _Pin; |
ChuckTimber | 0:f57033bb0e05 | 65 | Ticker _Tick; |
ChuckTimber | 0:f57033bb0e05 | 66 | |
ChuckTimber | 0:f57033bb0e05 | 67 | }; |
ChuckTimber | 0:f57033bb0e05 | 68 | |
ChuckTimber | 0:f57033bb0e05 | 69 | } |
ChuckTimber | 0:f57033bb0e05 | 70 | #endif |