Added flag for 'monitor' button to keyboard driver, implemented 'monitor' and 'function' buttons in MDxx380 keyboard driver

This commit is contained in:
Silvano Seva 2020-10-29 09:29:11 +01:00 committed by Niccolò Izzo
parent 9a94efb1c7
commit b0f5341304
4 changed files with 44 additions and 33 deletions

View File

@ -29,38 +29,38 @@
*/ */
enum keys enum keys
{ {
KEY_0 = (1 << 0), KEY_0 = (1 << 0), /* Keypad digit "0" */
KEY_1 = (1 << 1), KEY_1 = (1 << 1), /* Keypad digit "1" */
KEY_2 = (1 << 2), KEY_2 = (1 << 2), /* Keypad digit "2" */
KEY_3 = (1 << 3), KEY_3 = (1 << 3), /* Keypad digit "3" */
KEY_4 = (1 << 4), KEY_4 = (1 << 4), /* Keypad digit "4" */
KEY_5 = (1 << 5), KEY_5 = (1 << 5), /* Keypad digit "5" */
KEY_6 = (1 << 6), KEY_6 = (1 << 6), /* Keypad digit "6" */
KEY_7 = (1 << 7), KEY_7 = (1 << 7), /* Keypad digit "7" */
KEY_8 = (1 << 8), KEY_8 = (1 << 8), /* Keypad digit "8" */
KEY_9 = (1 << 9), KEY_9 = (1 << 9), /* Keypad digit "9" */
KEY_STAR = (1 << 10), KEY_STAR = (1 << 10), /* Keypad digit "*" */
KEY_HASH = (1 << 11), KEY_HASH = (1 << 11), /* Keypad digit "#" */
KEY_ENTER = (1 << 12), KEY_ENTER = (1 << 12), /* Keypad green button/enter */
KEY_ESC = (1 << 13), KEY_ESC = (1 << 13), /* Keypad red button/esc */
KEY_UP = (1 << 14), KEY_UP = (1 << 14), /* Keypad upward arrow */
KEY_DOWN = (1 << 15), KEY_DOWN = (1 << 15), /* Keypad downward arrow */
KEY_LEFT = (1 << 16), KEY_LEFT = (1 << 16), /* Keypad leftward arrow */
KEY_RIGHT = (1 << 17), KEY_RIGHT = (1 << 17), /* Keypad rightward arrow */
KEY_F1 = (1 << 18), KEY_MONI = (1 << 18), /* Monitor button */
KEY_F2 = (1 << 19), KEY_F1 = (1 << 19), /* Function button */
KEY_F3 = (1 << 20), KEY_F2 = (1 << 20), /* Function button (device specific) */
KEY_F4 = (1 << 21), KEY_F3 = (1 << 21), /* Function button (device specific) */
KEY_F5 = (1 << 22), KEY_F4 = (1 << 22), /* Function button (device specific) */
KEY_F6 = (1 << 23), KEY_F5 = (1 << 23), /* Function button (device specific) */
KEY_F7 = (1 << 24), KEY_F6 = (1 << 24), /* Function button (device specific) */
KEY_F8 = (1 << 25), KEY_F7 = (1 << 25), /* Function button (device specific) */
KEY_F9 = (1 << 26), KEY_F8 = (1 << 26), /* Function button (device specific) */
KEY_F10 = (1 << 27), KEY_F9 = (1 << 27), /* Function button (device specific) */
KEY_F11 = (1 << 28), KEY_F10 = (1 << 28), /* Function button (device specific) */
KEY_F12 = (1 << 29), KEY_F11 = (1 << 29), /* Function button (device specific) */
KEY_F13 = (1 << 30), KEY_F12 = (1 << 30), /* Function button (device specific) */
KEY_F14 = (1 << 31) KEY_F13 = (1 << 31) /* Function button (device specific) */
}; };
/** /**

View File

@ -30,8 +30,10 @@ void kbd_init()
/* Set the two row lines as outputs */ /* Set the two row lines as outputs */
gpio_setMode(KB_ROW1, OUTPUT); gpio_setMode(KB_ROW1, OUTPUT);
gpio_setMode(KB_ROW2, OUTPUT); gpio_setMode(KB_ROW2, OUTPUT);
gpio_setMode(KB_ROW3, OUTPUT);
gpio_clearPin(KB_ROW1); gpio_clearPin(KB_ROW1);
gpio_clearPin(KB_ROW2); gpio_clearPin(KB_ROW2);
gpio_clearPin(KB_ROW3);
} }
void kbd_terminate() void kbd_terminate()
@ -39,9 +41,10 @@ void kbd_terminate()
/* Back to default state */ /* Back to default state */
gpio_clearPin(KB_ROW1); gpio_clearPin(KB_ROW1);
gpio_clearPin(KB_ROW2); gpio_clearPin(KB_ROW2);
gpio_clearPin(KB_ROW3);
gpio_setMode(KB_ROW1, INPUT); gpio_setMode(KB_ROW1, INPUT);
gpio_setMode(KB_ROW2, INPUT); gpio_setMode(KB_ROW2, INPUT);
gpio_setMode(KB_ROW3, INPUT);
} }
uint32_t kbd_getKeys() uint32_t kbd_getKeys()
@ -89,5 +92,11 @@ uint32_t kbd_getKeys()
if(gpio_readPin(LCD_D3)) keys |= KEY_7; if(gpio_readPin(LCD_D3)) keys |= KEY_7;
gpio_clearPin(KB_ROW2); 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; return keys;
} }

View File

@ -67,6 +67,7 @@
*/ */
#define KB_ROW1 GPIOA,6 /* K1 */ #define KB_ROW1 GPIOA,6 /* K1 */
#define KB_ROW2 GPIOD,2 /* K2 */ #define KB_ROW2 GPIOD,2 /* K2 */
#define KB_ROW3 GPIOD,3 /* K3 */
/* /*
* To enable pwm for display backlight dimming uncomment this directive. * To enable pwm for display backlight dimming uncomment this directive.

View File

@ -67,5 +67,6 @@
*/ */
#define KB_ROW1 GPIOA,6 /* K1 */ #define KB_ROW1 GPIOA,6 /* K1 */
#define KB_ROW2 GPIOD,2 /* K2 */ #define KB_ROW2 GPIOD,2 /* K2 */
#define KB_ROW3 GPIOD,3 /* K3 */
#endif #endif