From 6dc6c4323893ec09171cf3f9d88d4e2a49d4b2f5 Mon Sep 17 00:00:00 2001 From: Robert Csordas Date: Sat, 12 Nov 2016 19:07:39 +0100 Subject: [PATCH] Able to type. --- right/src/led_driver.c | 2 +- right/src/usb_interface_keyboard.c | 84 +++++++++++++++++++++++++++++- 2 files changed, 83 insertions(+), 3 deletions(-) diff --git a/right/src/led_driver.c b/right/src/led_driver.c index ab65132..4ddb2a0 100644 --- a/right/src/led_driver.c +++ b/right/src/led_driver.c @@ -42,7 +42,7 @@ void LedDriver_EnableAllLeds() LedDriver_WriteRegister(address, i, 0x00); } for (i=FRAME_REGISTER_PWM_FIRST; i<=FRAME_REGISTER_PWM_LAST; i++) { - LedDriver_WriteRegister(address, i, 0xff); + LedDriver_WriteRegister(address, i, 0x00); } } } diff --git a/right/src/usb_interface_keyboard.c b/right/src/usb_interface_keyboard.c index 673ecd5..2f76711 100644 --- a/right/src/usb_interface_keyboard.c +++ b/right/src/usb_interface_keyboard.c @@ -68,6 +68,86 @@ key_matrix_t keyMatrix = { #define KEY_STATE_COUNT (5*7) uint8_t leftKeyStates[KEY_STATE_COUNT] = {0}; +uint8_t scancodes[]={ + HID_KEYBOARD_SC_7_AND_AMPERSAND, + HID_KEYBOARD_SC_8_AND_ASTERISK, + HID_KEYBOARD_SC_9_AND_OPENING_PARENTHESIS, + HID_KEYBOARD_SC_0_AND_CLOSING_PARENTHESIS, + HID_KEYBOARD_SC_MINUS_AND_UNDERSCORE, + HID_KEYBOARD_SC_EQUAL_AND_PLUS, + HID_KEYBOARD_SC_BACKSPACE, + HID_KEYBOARD_SC_U, + HID_KEYBOARD_SC_I, + HID_KEYBOARD_SC_O, + HID_KEYBOARD_SC_P, + HID_KEYBOARD_SC_OPENING_BRACKET_AND_OPENING_BRACE, + HID_KEYBOARD_SC_CLOSING_BRACKET_AND_CLOSING_BRACE, + HID_KEYBOARD_SC_BACKSLASH_AND_PIPE, + HID_KEYBOARD_SC_Y, + HID_KEYBOARD_SC_J, + HID_KEYBOARD_SC_K, + HID_KEYBOARD_SC_L, + HID_KEYBOARD_SC_SEMICOLON_AND_COLON, + HID_KEYBOARD_SC_APOSTROPHE_AND_QUOTE, + HID_KEYBOARD_SC_ENTER, + HID_KEYBOARD_SC_H, + HID_KEYBOARD_SC_N, + HID_KEYBOARD_SC_M, + HID_KEYBOARD_SC_COMMA_AND_LESS_THAN_SIGN, + HID_KEYBOARD_SC_DOT_AND_GREATER_THAN_SIGN, + HID_KEYBOARD_SC_SLASH_AND_QUESTION_MARK, + HID_KEYBOARD_SC_RIGHT_SHIFT, + HID_KEYBOARD_SC_A, //?? + HID_KEYBOARD_SC_SPACE, + HID_KEYBOARD_SC_A, //?? + HID_KEYBOARD_SC_SPACE, //Fn + HID_KEYBOARD_SC_RIGHT_ALT, + HID_KEYBOARD_SC_RIGHT_GUI, + HID_KEYBOARD_SC_RIGHT_CONTROL, + //Left half + HID_KEYBOARD_SC_KEYPAD_1_AND_END, + HID_KEYBOARD_SC_KEYPAD_2_AND_DOWN_ARROW, + HID_KEYBOARD_SC_KEYPAD_3_AND_PAGE_DOWN, + HID_KEYBOARD_SC_KEYPAD_4_AND_LEFT_ARROW, + HID_KEYBOARD_SC_KEYPAD_5, + HID_KEYBOARD_SC_KEYPAD_6_AND_RIGHT_ARROW, + HID_KEYBOARD_SC_TAB, + HID_KEYBOARD_SC_Q, + HID_KEYBOARD_SC_W, + HID_KEYBOARD_SC_E, + HID_KEYBOARD_SC_R, + HID_KEYBOARD_SC_A, //?? + HID_KEYBOARD_SC_T, + HID_KEYBOARD_SC_CAPS_LOCK, + HID_KEYBOARD_SC_A, + HID_KEYBOARD_SC_S, + HID_KEYBOARD_SC_D, + HID_KEYBOARD_SC_F, + HID_KEYBOARD_SC_A, //?? + HID_KEYBOARD_SC_G, + HID_KEYBOARD_SC_LEFT_SHIFT, + HID_KEYBOARD_SC_NON_US_HASHMARK_AND_TILDE, //no idea if this is the right one, + HID_KEYBOARD_SC_Z, + HID_KEYBOARD_SC_X, + HID_KEYBOARD_SC_C, + HID_KEYBOARD_SC_V, + HID_KEYBOARD_SC_B, + HID_KEYBOARD_SC_LEFT_CONTROL, + HID_KEYBOARD_SC_LEFT_GUI, + HID_KEYBOARD_SC_LEFT_ALT, + HID_KEYBOARD_SC_SPACE, //Fn + HID_KEYBOARD_SC_A, //?? + HID_KEYBOARD_SC_SPACE, //Mod +}; + +static uint8_t getKeycode(uint8_t keyId) +{ + if (keyId