diff --git a/openrtx/include/interfaces/keyboard.h b/openrtx/include/interfaces/keyboard.h index 02eb42d3..fade32c1 100644 --- a/openrtx/include/interfaces/keyboard.h +++ b/openrtx/include/interfaces/keyboard.h @@ -29,38 +29,38 @@ */ enum keys { - KEY_0 = (1 << 0), - KEY_1 = (1 << 1), - KEY_2 = (1 << 2), - KEY_3 = (1 << 3), - KEY_4 = (1 << 4), - KEY_5 = (1 << 5), - KEY_6 = (1 << 6), - KEY_7 = (1 << 7), - KEY_8 = (1 << 8), - KEY_9 = (1 << 9), - KEY_STAR = (1 << 10), - KEY_HASH = (1 << 11), - KEY_ENTER = (1 << 12), - KEY_ESC = (1 << 13), - KEY_UP = (1 << 14), - KEY_DOWN = (1 << 15), - KEY_LEFT = (1 << 16), - KEY_RIGHT = (1 << 17), - KEY_F1 = (1 << 18), - KEY_F2 = (1 << 19), - KEY_F3 = (1 << 20), - KEY_F4 = (1 << 21), - KEY_F5 = (1 << 22), - KEY_F6 = (1 << 23), - KEY_F7 = (1 << 24), - KEY_F8 = (1 << 25), - KEY_F9 = (1 << 26), - KEY_F10 = (1 << 27), - KEY_F11 = (1 << 28), - KEY_F12 = (1 << 29), - KEY_F13 = (1 << 30), - KEY_F14 = (1 << 31) + KEY_0 = (1 << 0), /* Keypad digit "0" */ + KEY_1 = (1 << 1), /* Keypad digit "1" */ + KEY_2 = (1 << 2), /* Keypad digit "2" */ + KEY_3 = (1 << 3), /* Keypad digit "3" */ + KEY_4 = (1 << 4), /* Keypad digit "4" */ + KEY_5 = (1 << 5), /* Keypad digit "5" */ + KEY_6 = (1 << 6), /* Keypad digit "6" */ + KEY_7 = (1 << 7), /* Keypad digit "7" */ + KEY_8 = (1 << 8), /* Keypad digit "8" */ + KEY_9 = (1 << 9), /* Keypad digit "9" */ + KEY_STAR = (1 << 10), /* Keypad digit "*" */ + KEY_HASH = (1 << 11), /* Keypad digit "#" */ + KEY_ENTER = (1 << 12), /* Keypad green button/enter */ + KEY_ESC = (1 << 13), /* Keypad red button/esc */ + KEY_UP = (1 << 14), /* Keypad upward arrow */ + KEY_DOWN = (1 << 15), /* Keypad downward arrow */ + KEY_LEFT = (1 << 16), /* Keypad leftward arrow */ + KEY_RIGHT = (1 << 17), /* Keypad rightward arrow */ + KEY_MONI = (1 << 18), /* Monitor button */ + KEY_F1 = (1 << 19), /* Function button */ + KEY_F2 = (1 << 20), /* Function button (device specific) */ + KEY_F3 = (1 << 21), /* Function button (device specific) */ + KEY_F4 = (1 << 22), /* Function button (device specific) */ + KEY_F5 = (1 << 23), /* Function button (device specific) */ + KEY_F6 = (1 << 24), /* Function button (device specific) */ + KEY_F7 = (1 << 25), /* Function button (device specific) */ + KEY_F8 = (1 << 26), /* Function button (device specific) */ + KEY_F9 = (1 << 27), /* Function button (device specific) */ + KEY_F10 = (1 << 28), /* Function button (device specific) */ + KEY_F11 = (1 << 29), /* Function button (device specific) */ + KEY_F12 = (1 << 30), /* Function button (device specific) */ + KEY_F13 = (1 << 31) /* Function button (device specific) */ }; /** diff --git a/platform/drivers/keyboard/keyboard_MDxx380.c b/platform/drivers/keyboard/keyboard_MDxx380.c index 88e80f66..9918fe6c 100644 --- a/platform/drivers/keyboard/keyboard_MDxx380.c +++ b/platform/drivers/keyboard/keyboard_MDxx380.c @@ -30,8 +30,10 @@ void kbd_init() /* Set the two row lines as outputs */ gpio_setMode(KB_ROW1, OUTPUT); gpio_setMode(KB_ROW2, OUTPUT); + gpio_setMode(KB_ROW3, OUTPUT); gpio_clearPin(KB_ROW1); gpio_clearPin(KB_ROW2); + gpio_clearPin(KB_ROW3); } void kbd_terminate() @@ -39,9 +41,10 @@ void kbd_terminate() /* Back to default state */ gpio_clearPin(KB_ROW1); gpio_clearPin(KB_ROW2); + gpio_clearPin(KB_ROW3); gpio_setMode(KB_ROW1, INPUT); gpio_setMode(KB_ROW2, INPUT); - + gpio_setMode(KB_ROW3, INPUT); } uint32_t kbd_getKeys() @@ -89,5 +92,11 @@ uint32_t kbd_getKeys() if(gpio_readPin(LCD_D3)) keys |= KEY_7; gpio_clearPin(KB_ROW2); + gpio_setPin(KB_ROW3); + + if(gpio_readPin(LCD_D6)) keys |= KEY_F1; + if(gpio_readPin(LCD_D7)) keys |= KEY_MONI; + + gpio_clearPin(KB_ROW3); return keys; } diff --git a/platform/targets/MD-UV380/hwconfig.h b/platform/targets/MD-UV380/hwconfig.h index d73635fb..ce977d39 100644 --- a/platform/targets/MD-UV380/hwconfig.h +++ b/platform/targets/MD-UV380/hwconfig.h @@ -67,6 +67,7 @@ */ #define KB_ROW1 GPIOA,6 /* K1 */ #define KB_ROW2 GPIOD,2 /* K2 */ +#define KB_ROW3 GPIOD,3 /* K3 */ /* * To enable pwm for display backlight dimming uncomment this directive. diff --git a/platform/targets/MD380/hwconfig.h b/platform/targets/MD380/hwconfig.h index a9fca1e6..f65ccaf5 100644 --- a/platform/targets/MD380/hwconfig.h +++ b/platform/targets/MD380/hwconfig.h @@ -67,5 +67,6 @@ */ #define KB_ROW1 GPIOA,6 /* K1 */ #define KB_ROW2 GPIOD,2 /* K2 */ +#define KB_ROW3 GPIOD,3 /* K3 */ #endif