button procedure library

Dependents:   MIDI_CW Gemphet8

Committer:
ChuckTimber
Date:
Thu Aug 07 03:59:45 2014 +0000
Revision:
3:1c47d318e457
Parent:
2:df827b705b98
Child:
6:b6a97933b3d5
Documentation updated

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 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