lib/keypad/Keypad.h

changeset 26
86f099bda525
parent 24
b43536c064f6
child 66
48f29a1d43d6
equal deleted inserted replaced
25:5b1e0b384d31 26:86f099bda525
1 1
2 #ifndef KEYPAD_H 2 #ifndef KEYPAD_H
3 #define KEYPAD_H 3 #define KEYPAD_H
4 4
5 #include "mbed.h" 5 #include "mbed.h"
6 #include "rtos.h" 6 //#include "rtos.h"
7 #include <vector> 7 #include <vector>
8 8
9 9
10 10
11 typedef Callback<void(uint8_t, uint8_t)> keyevent_callback_t; 11 typedef Callback<void(uint8_t, uint8_t)> keyevent_callback_t;
13 class Keypad { 13 class Keypad {
14 public: 14 public:
15 Keypad(uint8_t nRows, DigitalIn rows[], 15 Keypad(uint8_t nRows, DigitalIn rows[],
16 uint8_t nColumns, DigitalOut cols[], 16 uint8_t nColumns, DigitalOut cols[],
17 int debounce_ms=20); 17 int debounce_ms=20);
18 18
19 /** Destructor 19 /** Destructor
20 */ 20 */
21 ~Keypad(); 21 ~Keypad();
22 22
23 void attach(const keyevent_callback_t& kp_callback=NULL, 23 void attach(const keyevent_callback_t& kp_callback=NULL,
24 const keyevent_callback_t& kr_callback=NULL); 24 const keyevent_callback_t& kr_callback=NULL);
25 25
26 void start(void); 26 void start(void);
27 void stop(void); 27 void stop(void);
28 28
29 29
30 protected: 30 protected:
31 std::vector<DigitalIn> _rows; 31 std::vector<DigitalIn> _rows;
32 std::vector<DigitalOut> _columns; 32 std::vector<DigitalOut> _columns;
33 int _debounce; // miliseconds 33 int _debounce; // miliseconds
34 34
35 void _kp(); 35 void _kp();
36 void _kr(); 36 void _kr();
37 void _keyPressed(int row); 37 void _keyPressed(int row);
38 void _keyReleased(int row); 38 void _keyReleased(int row);
39 void run(); 39 void run();
40 40
41 private: 41 private:
42 keyevent_callback_t _kp_callback; 42 keyevent_callback_t _kp_callback;
43 keyevent_callback_t _kr_callback; 43 keyevent_callback_t _kr_callback;
44 bool _started; 44 bool _started;
45 Thread _loop; 45 Thread _loop;

mercurial