Keypad that has 12 keys for input
Dependents: Input_Keypad MARISOL Final_Project
KeyPad.h
- Committer:
- anevil14
- Date:
- 2015-03-12
- Revision:
- 0:34c3354147cf
File content as of revision 0:34c3354147cf:
#ifndef MBED_KEYPAD_H #define MBED_KEYPAD_H #include "mbed.h" #include <vector> #include <algorithm> #include <time.h> //Keypad class. A 4x3 keypad class. Documentation is available on wiki @ ___________ //Usage: Instantiate object, and use getkey method to retrieve keys pressed. Might want to play around with switchrate to get better responsiveness (decides how fast we switch powering columns) //Important note: Can only reliably detect a keypress in a single row at any given time, although multiple key detection in different rows is supported (eg 1 and 4 is detected simulataneously, 1 and 3 will just detect one of those) /* Keypad Representations 1 2 3 1 2 3 4 5 6 -> 4 5 6 7 8 9 7 8 9 * 0 # 10 11 12 */ class KeyPad2{ public: KeyPad2(PinName pin3, PinName pin1 ,PinName pin5 ,PinName pin2, PinName pin7,PinName pin6, PinName pin4); void setswitchrate(double switchrate); // sets function to be called when any button is pressed // function should take in one parameter which will represent the button pressed (int) void setinterrupthandler(const void* func); ~KeyPad2(); // takes roughly 3x switchrate + processing time std::vector<int> getkey(); private: // the time in milliseconds which each power will be powered for before switching to the next // default = 10 milliseconds double switchrate; DigitalOut* columnoneout; // pin 3 on keypad DigitalOut* columntwoout; // pin 1 on keypad DigitalOut* columnthreeout; // pin 5 on keypad DigitalIn* rowonein; // pin 2 on keypad DigitalIn* rowtwoin; // pin 7 on keypad DigitalIn* rowthreein; // pin 6 on keypad DigitalIn* rowfourin; // pin 4 on keypard }; #endif