Tests forked Keypad library.

Dependencies:   FPointer keypad mbed

Schematic:

http://schind.nl/keypad.png

No extra hardware is needed besides the wires and switches. The columns are outputs configured with open drain. The rows are inputs configured with pull up resistors. A key press pulls down its row. With scanning the column is determined thereafter.

See keypad for the forked library used in this project.

Committer:
gj_schoneveld
Date:
Sat Nov 03 21:48:39 2012 +0000
Revision:
1:8bbe2b267de6
Parent:
0:5410e5950602
Child:
2:eaa3d23e9b29
- clean up ; - added led code from Rene Greiner's IRQKeypad1.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gj_schoneveld 1:8bbe2b267de6 1 #include "mbed.h"
gj_schoneveld 1:8bbe2b267de6 2 #include "keypad.h"
gj_schoneveld 1:8bbe2b267de6 3
gj_schoneveld 1:8bbe2b267de6 4 // Define your own keypad values
gj_schoneveld 1:8bbe2b267de6 5 char Keytable[] = { '1', '2', '3', 'A',
gj_schoneveld 1:8bbe2b267de6 6 '4', '5', '6', 'B',
gj_schoneveld 1:8bbe2b267de6 7 '7', '8', '9', 'C',
gj_schoneveld 1:8bbe2b267de6 8 '*', '0', '#', 'D'
gj_schoneveld 1:8bbe2b267de6 9 };
gj_schoneveld 1:8bbe2b267de6 10
gj_schoneveld 1:8bbe2b267de6 11 BusOut code(LED4, LED3, LED2, LED1); //show binary code of key
gj_schoneveld 1:8bbe2b267de6 12
gj_schoneveld 1:8bbe2b267de6 13 uint32_t cbAfterInput(uint32_t key)
gj_schoneveld 1:8bbe2b267de6 14 {
gj_schoneveld 1:8bbe2b267de6 15 printf("Key: %d => \'%c\'\n", key, Keytable[key]);
gj_schoneveld 1:8bbe2b267de6 16 code = key;
gj_schoneveld 1:8bbe2b267de6 17
gj_schoneveld 1:8bbe2b267de6 18 return 0;
gj_schoneveld 1:8bbe2b267de6 19 }
gj_schoneveld 1:8bbe2b267de6 20
gj_schoneveld 1:8bbe2b267de6 21 void Sleep(void)
gj_schoneveld 1:8bbe2b267de6 22 {
gj_schoneveld 1:8bbe2b267de6 23 __WFI();
gj_schoneveld 1:8bbe2b267de6 24 }
gj_schoneveld 1:8bbe2b267de6 25
gj_schoneveld 1:8bbe2b267de6 26 int main()
gj_schoneveld 1:8bbe2b267de6 27 {
gj_schoneveld 1:8bbe2b267de6 28 printf("*** Keypad Demo ***\n");
gj_schoneveld 1:8bbe2b267de6 29
gj_schoneveld 1:8bbe2b267de6 30 Keypad keypad(p25, p26, p27, p28, p21, p22, p23, p24);
gj_schoneveld 1:8bbe2b267de6 31 keypad.CallAfterInput(&cbAfterInput);
gj_schoneveld 1:8bbe2b267de6 32
gj_schoneveld 1:8bbe2b267de6 33 keypad.Start();
gj_schoneveld 1:8bbe2b267de6 34 while (1) {
gj_schoneveld 1:8bbe2b267de6 35 Sleep();
gj_schoneveld 1:8bbe2b267de6 36 }
gj_schoneveld 0:5410e5950602 37 }