button procedure library
button.h@6:b6a97933b3d5, 2014-08-12 (annotated)
- Committer:
- ChuckTimber
- Date:
- Tue Aug 12 02:51:42 2014 +0000
- Revision:
- 6:b6a97933b3d5
- Parent:
- 3:1c47d318e457
Modified document.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ChuckTimber | 6:b6a97933b3d5 | 1 | /** |
ChuckTimber | 6:b6a97933b3d5 | 2 | * @file button.h |
ChuckTimber | 6:b6a97933b3d5 | 3 | * Project button handling Library |
ChuckTimber | 6:b6a97933b3d5 | 4 | * @brief button handling library for mbed |
ChuckTimber | 6:b6a97933b3d5 | 5 | * @version 1.03 |
ChuckTimber | 6:b6a97933b3d5 | 6 | * @author Chuck Timber |
ChuckTimber | 6:b6a97933b3d5 | 7 | * @date 12/08/2014 |
ChuckTimber | 6:b6a97933b3d5 | 8 | */ |
ChuckTimber | 6:b6a97933b3d5 | 9 | |
ChuckTimber | 0:f57033bb0e05 | 10 | #ifndef MBED_BUTTON_H |
ChuckTimber | 0:f57033bb0e05 | 11 | #define MBED_BUTTON_H |
ChuckTimber | 0:f57033bb0e05 | 12 | |
ChuckTimber | 0:f57033bb0e05 | 13 | #include "mbed.h" |
ChuckTimber | 0:f57033bb0e05 | 14 | |
ChuckTimber | 6:b6a97933b3d5 | 15 | /** @defines |
ChuckTimber | 3:1c47d318e457 | 16 | */ |
ChuckTimber | 6:b6a97933b3d5 | 17 | #define BTN_SAMPLING_PERIOD 0.01 |
ChuckTimber | 3:1c47d318e457 | 18 | |
ChuckTimber | 6:b6a97933b3d5 | 19 | namespace mbed |
ChuckTimber | 6:b6a97933b3d5 | 20 | { |
ChuckTimber | 6:b6a97933b3d5 | 21 | |
ChuckTimber | 6:b6a97933b3d5 | 22 | /** Class: BTN |
ChuckTimber | 6:b6a97933b3d5 | 23 | * A class handles button input procedure, which uses DigitalIn and Ticker |
ChuckTimber | 1:20c8438edaee | 24 | * |
ChuckTimber | 1:20c8438edaee | 25 | * Refered to: http://elm-chan.org/docs/tec/te03.html |
ChuckTimber | 0:f57033bb0e05 | 26 | * |
ChuckTimber | 0:f57033bb0e05 | 27 | * Example: |
ChuckTimber | 0:f57033bb0e05 | 28 | * @code |
ChuckTimber | 1:20c8438edaee | 29 | * // Button sample |
ChuckTimber | 1:20c8438edaee | 30 | * #include "mbed.h" |
ChuckTimber | 1:20c8438edaee | 31 | * #include "button.h" |
ChuckTimber | 6:b6a97933b3d5 | 32 | * |
ChuckTimber | 1:20c8438edaee | 33 | * BTN btn(dp13); |
ChuckTimber | 6:b6a97933b3d5 | 34 | * |
ChuckTimber | 1:20c8438edaee | 35 | * int main() |
ChuckTimber | 1:20c8438edaee | 36 | * { |
ChuckTimber | 1:20c8438edaee | 37 | * int mode = 0; |
ChuckTimber | 1:20c8438edaee | 38 | * int value; |
ChuckTimber | 6:b6a97933b3d5 | 39 | * |
ChuckTimber | 1:20c8438edaee | 40 | * btn.CMD = 0; |
ChuckTimber | 1:20c8438edaee | 41 | * while(1) { |
ChuckTimber | 1:20c8438edaee | 42 | * if(btn.CMD) { |
ChuckTimber | 1:20c8438edaee | 43 | * mode++; |
ChuckTimber | 1:20c8438edaee | 44 | * btn.CMD = 0; |
ChuckTimber | 1:20c8438edaee | 45 | * srand( time(NULL) ); |
ChuckTimber | 1:20c8438edaee | 46 | * } |
ChuckTimber | 1:20c8438edaee | 47 | * if (mode % 2) value = rand(); |
ChuckTimber | 1:20c8438edaee | 48 | * } |
ChuckTimber | 1:20c8438edaee | 49 | * } |
ChuckTimber | 0:f57033bb0e05 | 50 | * @endcode |
ChuckTimber | 0:f57033bb0e05 | 51 | */ |
ChuckTimber | 6:b6a97933b3d5 | 52 | class BTN |
ChuckTimber | 6:b6a97933b3d5 | 53 | { |
ChuckTimber | 0:f57033bb0e05 | 54 | |
ChuckTimber | 0:f57033bb0e05 | 55 | public: |
ChuckTimber | 6:b6a97933b3d5 | 56 | unsigned char CMD; /*!< CMD represents that the button has been pressed. |
ChuckTimber | 6:b6a97933b3d5 | 57 | * @retval 1 - button has been pressed |
ChuckTimber | 6:b6a97933b3d5 | 58 | */ |
ChuckTimber | 6:b6a97933b3d5 | 59 | |
ChuckTimber | 6:b6a97933b3d5 | 60 | unsigned char STAT; /*!< STAT represents that the button is being pressed. |
ChuckTimber | 6:b6a97933b3d5 | 61 | * @retval 1 - button is being pressed |
ChuckTimber | 6:b6a97933b3d5 | 62 | */ |
ChuckTimber | 6:b6a97933b3d5 | 63 | |
ChuckTimber | 6:b6a97933b3d5 | 64 | /** constructor |
ChuckTimber | 6:b6a97933b3d5 | 65 | * |
ChuckTimber | 6:b6a97933b3d5 | 66 | * @param pin - button pin number (DigitalIn), the pin is PullUp internally |
ChuckTimber | 6:b6a97933b3d5 | 67 | */ |
ChuckTimber | 0:f57033bb0e05 | 68 | BTN(PinName pin); |
ChuckTimber | 6:b6a97933b3d5 | 69 | |
ChuckTimber | 6:b6a97933b3d5 | 70 | /// destructor |
ChuckTimber | 6:b6a97933b3d5 | 71 | virtual ~BTN() { }; |
ChuckTimber | 0:f57033bb0e05 | 72 | |
ChuckTimber | 0:f57033bb0e05 | 73 | private: |
ChuckTimber | 3:1c47d318e457 | 74 | /** sample_btn input and process */ |
ChuckTimber | 0:f57033bb0e05 | 75 | void sample_btn(void); |
ChuckTimber | 0:f57033bb0e05 | 76 | unsigned char FIL; |
ChuckTimber | 0:f57033bb0e05 | 77 | DigitalIn _Pin; |
ChuckTimber | 0:f57033bb0e05 | 78 | Ticker _Tick; |
ChuckTimber | 0:f57033bb0e05 | 79 | |
ChuckTimber | 0:f57033bb0e05 | 80 | }; |
ChuckTimber | 0:f57033bb0e05 | 81 | |
ChuckTimber | 0:f57033bb0e05 | 82 | } |
ChuckTimber | 0:f57033bb0e05 | 83 | #endif |