3x4 keypad library (Extended not only 3x4 but 4x4,4x5 and 5x5 keys)
Dependents: Keypad_input_OS2 Keypad_input
see /users/kenjiArai/notebook/keypadkey-matrix--control/
Diff: Keypad.cpp
- Revision:
- 4:f74ca02cdba1
- Parent:
- 3:0ea41738b560
- Child:
- 5:8929ce2f393c
--- a/Keypad.cpp Mon Apr 06 04:53:25 2020 +0000 +++ b/Keypad.cpp Mon Apr 13 02:04:25 2020 +0000 @@ -8,7 +8,7 @@ * http://www7b.biglobe.ne.jp/~kenjia/ * https://os.mbed.com/users/kenjiArai/ * Created: September 27th, 2017 - * Revised: April 6th, 2020 + * Revised: April 13th, 2020 */ #include "Keypad.h" @@ -33,9 +33,9 @@ k_in[1] = new DigitalIn(kb, PullUp); k_in[2] = new DigitalIn(kc, PullUp); k_in[3] = new DigitalIn(kd, PullUp); - k_out[0] = new DigitalOut(kx); - k_out[1] = new DigitalOut(ky); - k_out[2] = new DigitalOut(kz); + k_out[0] = new DigitalInOut(kx, PIN_OUTPUT, OpenDrain, 1); + k_out[1] = new DigitalInOut(ky, PIN_OUTPUT, OpenDrain, 1); + k_out[2] = new DigitalInOut(kz, PIN_OUTPUT, OpenDrain, 1); key_mode = 12; key_in_num = 4; key_out_num = 3; @@ -51,10 +51,10 @@ k_in[1] = new DigitalIn(kb, PullUp); k_in[2] = new DigitalIn(kc, PullUp); k_in[3] = new DigitalIn(kd, PullUp); - k_out[0] = new DigitalOut(kx); - k_out[1] = new DigitalOut(ky); - k_out[2] = new DigitalOut(kz); - k_out[3] = new DigitalOut(kw); + k_out[0] = new DigitalInOut(kx, PIN_OUTPUT, OpenDrain, 1); + k_out[1] = new DigitalInOut(ky, PIN_OUTPUT, OpenDrain, 1); + k_out[2] = new DigitalInOut(kz, PIN_OUTPUT, OpenDrain, 1); + k_out[3] = new DigitalInOut(kw, PIN_OUTPUT, OpenDrain, 1); key_mode = 16; key_in_num = 4; key_out_num = 4; @@ -71,10 +71,10 @@ k_in[2] = new DigitalIn(kc, PullUp); k_in[3] = new DigitalIn(kd, PullUp); k_in[4] = new DigitalIn(ke, PullUp); - k_out[0] = new DigitalOut(kx); - k_out[1] = new DigitalOut(ky); - k_out[2] = new DigitalOut(kz); - k_out[3] = new DigitalOut(kw); + k_out[0] = new DigitalInOut(kx, PIN_OUTPUT, OpenDrain, 1); + k_out[1] = new DigitalInOut(ky, PIN_OUTPUT, OpenDrain, 1); + k_out[2] = new DigitalInOut(kz, PIN_OUTPUT, OpenDrain, 1); + k_out[3] = new DigitalInOut(kw, PIN_OUTPUT, OpenDrain, 1); key_mode = 20; key_in_num = 5; key_out_num = 4; @@ -91,11 +91,11 @@ k_in[2] = new DigitalIn(kc, PullUp); k_in[3] = new DigitalIn(kd, PullUp); k_in[4] = new DigitalIn(ke, PullUp); - k_out[0] = new DigitalOut(kx); - k_out[1] = new DigitalOut(ky); - k_out[2] = new DigitalOut(kz); - k_out[3] = new DigitalOut(kw); - k_out[4] = new DigitalOut(kv); + k_out[0] = new DigitalInOut(kx, PIN_OUTPUT, OpenDrain, 1); + k_out[1] = new DigitalInOut(ky, PIN_OUTPUT, OpenDrain, 1); + k_out[2] = new DigitalInOut(kz, PIN_OUTPUT, OpenDrain, 1); + k_out[3] = new DigitalInOut(kw, PIN_OUTPUT, OpenDrain, 1); + k_out[4] = new DigitalInOut(kv, PIN_OUTPUT, OpenDrain, 1); key_mode = 25; key_in_num = 5; key_out_num = 5; @@ -104,15 +104,6 @@ void Keypad::initialize(void) { - *k_out[0] = 1; - *k_out[1] = 1; - *k_out[2] = 1; - if (key_mode > 12) { - *k_out[3] = 1; - } - if (key_mode > 20) { - *k_out[4] = 1; - } uint8_t j,i; for (j = 0; j < key_out_num; j++) { for(i = 0; i < key_in_num; i++) {