update
This commit is contained in:
+1
-370
@@ -1,6 +1,7 @@
|
||||
#pragma once
|
||||
// --- System registers ---
|
||||
#include <stdint.h>
|
||||
#include "keymap.h"
|
||||
#define TCA8418_REG_CFG 0x01
|
||||
#define TCA8418_REG_INT_STAT 0x02
|
||||
#define TCA8418_REG_KEY_LCK_EC 0x03
|
||||
@@ -71,376 +72,6 @@
|
||||
void tca8418_init(void);
|
||||
|
||||
int tca8418_read(uint8_t *key, uint8_t *pressed);
|
||||
/* test
|
||||
|
||||
key= 2 pressed
|
||||
key= 3 pressed
|
||||
key= 4 pressed
|
||||
key=1 5 pressed
|
||||
key=q 6 pressed
|
||||
key= 7 pressed
|
||||
key= 8 pressed
|
||||
|
||||
key=a 11 pressed
|
||||
key= 12 pressed
|
||||
key=3 13 pressed
|
||||
key=e 14 pressed
|
||||
key=s 15 pressed
|
||||
key=z 16 pressed
|
||||
key=4 17 pressed
|
||||
key=r 18 pressed
|
||||
|
||||
key=5 21 pressed
|
||||
key=t 22 pressed
|
||||
key=f 23 pressed
|
||||
key=c 24 pressed
|
||||
key=6 25 pressed
|
||||
key=y 26 pressed
|
||||
key=g 27 pressed
|
||||
key=v 28 pressed
|
||||
|
||||
key=h 31 pressed
|
||||
key=b 32 pressed
|
||||
key=8 33 pressed
|
||||
key=i 34 pressed
|
||||
key=j 35 pressed
|
||||
key=n 36 pressed
|
||||
key=9 37 pressed
|
||||
key=o 38 pressed
|
||||
|
||||
key=0 41 pressed
|
||||
key=p 42 pressed
|
||||
key=l 43 pressed
|
||||
key= 44 pressed
|
||||
key= 45 pressed
|
||||
key= 46 pressed
|
||||
key= 47 pressed
|
||||
key= 48 pressed
|
||||
|
||||
key= 51 pressed
|
||||
key= 52 pressed
|
||||
key= 53 pressed
|
||||
key= 54 pressed
|
||||
key= 55 pressed
|
||||
key= 56 pressed
|
||||
key= 57 pressed
|
||||
key= 58 pressed
|
||||
|
||||
key=s 61 pressed
|
||||
key=2 62 pressed
|
||||
key=8 63 pressed
|
||||
key=1 64 pressed
|
||||
key=2 65 pressed
|
||||
key=_ 66 pressed
|
||||
key=s 67 pressed
|
||||
key=e 68 pressed
|
||||
|
||||
*/
|
||||
|
||||
typedef enum {
|
||||
KEYBOARD_GPIO0 = 0,
|
||||
|
||||
KEYBOARD_ESC = 1,
|
||||
KEYBOARD_TAB = 2,
|
||||
KEYBOARD_MOD_FN = 3,
|
||||
KEYBOARD_MOD_CTRL = 4,
|
||||
KEYBOARD_1 = 5,
|
||||
KEYBOARD_Q = 6,
|
||||
KEYBOARD_MOD_SHIFT = 7,
|
||||
KEYBOARD_MOD_OPT = 8,
|
||||
|
||||
KEYBOARD_2 = 11,
|
||||
KEYBOARD_W = 12,
|
||||
KEYBOARD_A = 13,
|
||||
KEYBOARD_MOD_ALT = 14,
|
||||
KEYBOARD_3 = 15,
|
||||
KEYBOARD_E = 16,
|
||||
KEYBOARD_S = 17,
|
||||
KEYBOARD_Z = 18,
|
||||
|
||||
KEYBOARD_4 = 21,
|
||||
KEYBOARD_R = 22,
|
||||
KEYBOARD_D = 23,
|
||||
KEYBOARD_X = 24,
|
||||
KEYBOARD_5 = 25,
|
||||
KEYBOARD_T = 26,
|
||||
KEYBOARD_F = 27,
|
||||
KEYBOARD_C = 28,
|
||||
|
||||
KEYBOARD_6 = 31,
|
||||
KEYBOARD_Y = 32,
|
||||
KEYBOARD_G = 33,
|
||||
KEYBOARD_V = 34,
|
||||
KEYBOARD_7 = 35,
|
||||
KEYBOARD_U = 36,
|
||||
KEYBOARD_H = 37,
|
||||
KEYBOARD_B = 38,
|
||||
|
||||
KEYBOARD_8 = 41,
|
||||
KEYBOARD_I = 42,
|
||||
KEYBOARD_J = 43,
|
||||
KEYBOARD_N = 44,
|
||||
KEYBOARD_9 = 45,
|
||||
KEYBOARD_O = 46,
|
||||
KEYBOARD_K = 47,
|
||||
KEYBOARD_M = 48,
|
||||
|
||||
KEYBOARD_0 = 51,
|
||||
KEYBOARD_P = 52,
|
||||
KEYBOARD_L = 53,
|
||||
KEYBOARD_LEFT = 54, //also comma
|
||||
KEYBOARD_UNDERSCORE = 55,
|
||||
KEYBOARD_LEFT_BRACKET = 56,
|
||||
KEYBOARD_UP = 57, //also semicolon
|
||||
KEYBOARD_DOWN = 58,
|
||||
|
||||
KEYBOARD_EQUALS = 61,
|
||||
KEYBOARD_RIGHT_BRACKET = 62,
|
||||
KEYBOARD_APOSTROPHE = 63,
|
||||
KEYBOARD_RIGHT = 64, //also slash
|
||||
KEYBOARD_BACKSPACE = 65,
|
||||
KEYBOARD_BACKSLASH = 66,
|
||||
KEYBOARD_RETURN = 67,
|
||||
KEYBOARD_SPACE = 68
|
||||
}
|
||||
KEYMAP_MAP;
|
||||
|
||||
#define KEYBOARD_KEYS_COUNT 80
|
||||
|
||||
typedef enum {
|
||||
KEYBOARD_SHIFT_TILDE = KEYBOARD_ESC,
|
||||
KEYBOARD_SHIFT_EXCLAMATION = KEYBOARD_1,
|
||||
KEYBOARD_SHIFT_AT = KEYBOARD_2,
|
||||
KEYBOARD_SHIFT_HASH = KEYBOARD_3,
|
||||
KEYBOARD_SHIFT_DOLLAR = KEYBOARD_4,
|
||||
KEYBOARD_SHIFT_PERCENT = KEYBOARD_5,
|
||||
KEYBOARD_SHIFT_POWER = KEYBOARD_6,
|
||||
KEYBOARD_SHIFT_AMPERSAND = KEYBOARD_7,
|
||||
KEYBOARD_SHIFT_STAR = KEYBOARD_8,
|
||||
KEYBOARD_SHIFT_OPENPARETHESIS = KEYBOARD_9,
|
||||
KEYBOARD_SHIFT_CLOSEPARENTHESIS = KEYBOARD_0,
|
||||
KEYBOARD_SHIFT_LESS = KEYBOARD_LEFT,
|
||||
KEYBOARD_SHIFT_DASH = KEYBOARD_UNDERSCORE,
|
||||
KEYBOARD_SHIFT_LEFT_CURLY_BRACKET = KEYBOARD_LEFT_BRACKET,
|
||||
KEYBOARD_SHIFT_COLON = KEYBOARD_UP,
|
||||
KEYBOARD_SHIFT_GREATER = KEYBOARD_DOWN,
|
||||
KEYBOARD_SHIFT_PLUS = KEYBOARD_EQUALS,
|
||||
KEYBOARD_SHIFT_RIGHT_CURLY_BRACKET = KEYBOARD_RIGHT_BRACKET,
|
||||
KEYBOARD_SHIFT_APOSTROPHES = KEYBOARD_APOSTROPHE,
|
||||
KEYBOARD_SHIFT_QUESTIONMARK = KEYBOARD_LEFT, //also slash
|
||||
KEYBOARD_SHIFT_DELETE = KEYBOARD_BACKSPACE,
|
||||
KEYBOARD_SHIFT_PIPE = KEYBOARD_BACKSLASH,
|
||||
} KEYMAP_SHIFT;
|
||||
|
||||
static const char keymap_normal[] = {
|
||||
[KEYBOARD_ESC] = 27,
|
||||
[KEYBOARD_TAB] = '\t',
|
||||
[KEYBOARD_SPACE] = ' ',
|
||||
[KEYBOARD_RETURN] = '\n',
|
||||
[KEYBOARD_BACKSPACE] = '\b',
|
||||
|
||||
[KEYBOARD_1] = '1',
|
||||
[KEYBOARD_2] = '2',
|
||||
[KEYBOARD_3] = '3',
|
||||
[KEYBOARD_4] = '4',
|
||||
[KEYBOARD_5] = '5',
|
||||
[KEYBOARD_6] = '6',
|
||||
[KEYBOARD_7] = '7',
|
||||
[KEYBOARD_8] = '8',
|
||||
[KEYBOARD_9] = '9',
|
||||
[KEYBOARD_0] = '0',
|
||||
|
||||
[KEYBOARD_Q] = 'q',
|
||||
[KEYBOARD_W] = 'w',
|
||||
[KEYBOARD_E] = 'e',
|
||||
[KEYBOARD_R] = 'r',
|
||||
[KEYBOARD_T] = 't',
|
||||
[KEYBOARD_Y] = 'y',
|
||||
[KEYBOARD_U] = 'u',
|
||||
[KEYBOARD_I] = 'i',
|
||||
[KEYBOARD_O] = 'o',
|
||||
[KEYBOARD_P] = 'p',
|
||||
|
||||
[KEYBOARD_A] = 'a',
|
||||
[KEYBOARD_S] = 's',
|
||||
[KEYBOARD_D] = 'd',
|
||||
[KEYBOARD_F] = 'f',
|
||||
[KEYBOARD_G] = 'g',
|
||||
[KEYBOARD_H] = 'h',
|
||||
[KEYBOARD_J] = 'j',
|
||||
[KEYBOARD_K] = 'k',
|
||||
[KEYBOARD_L] = 'l',
|
||||
|
||||
[KEYBOARD_Z] = 'z',
|
||||
[KEYBOARD_X] = 'x',
|
||||
[KEYBOARD_C] = 'c',
|
||||
[KEYBOARD_V] = 'v',
|
||||
[KEYBOARD_B] = 'b',
|
||||
[KEYBOARD_N] = 'n',
|
||||
[KEYBOARD_M] = 'm',
|
||||
|
||||
[KEYBOARD_LEFT] = ',',
|
||||
[KEYBOARD_RIGHT] = '/',
|
||||
[KEYBOARD_UP] = ';',
|
||||
[KEYBOARD_DOWN] = '.',
|
||||
|
||||
[KEYBOARD_UNDERSCORE] = '-',
|
||||
[KEYBOARD_EQUALS] = '=',
|
||||
[KEYBOARD_LEFT_BRACKET] = '[',
|
||||
[KEYBOARD_RIGHT_BRACKET] = ']',
|
||||
[KEYBOARD_APOSTROPHE] = '\'',
|
||||
[KEYBOARD_BACKSLASH] = '\\',
|
||||
};
|
||||
|
||||
static const char keymap_shift[] = {
|
||||
[KEYBOARD_ESC] = '~',
|
||||
|
||||
[KEYBOARD_1] = '!',
|
||||
[KEYBOARD_2] = '@',
|
||||
[KEYBOARD_3] = '#',
|
||||
[KEYBOARD_4] = '$',
|
||||
[KEYBOARD_5] = '%',
|
||||
[KEYBOARD_6] = '^',
|
||||
[KEYBOARD_7] = '&',
|
||||
[KEYBOARD_8] = '*',
|
||||
[KEYBOARD_9] = '(',
|
||||
[KEYBOARD_0] = ')',
|
||||
|
||||
[KEYBOARD_Q] = 'Q',
|
||||
[KEYBOARD_W] = 'W',
|
||||
[KEYBOARD_E] = 'E',
|
||||
[KEYBOARD_R] = 'R',
|
||||
[KEYBOARD_T] = 'T',
|
||||
[KEYBOARD_Y] = 'Y',
|
||||
[KEYBOARD_U] = 'U',
|
||||
[KEYBOARD_I] = 'I',
|
||||
[KEYBOARD_O] = 'O',
|
||||
[KEYBOARD_P] = 'P',
|
||||
|
||||
[KEYBOARD_A] = 'A',
|
||||
[KEYBOARD_S] = 'S',
|
||||
[KEYBOARD_D] = 'D',
|
||||
[KEYBOARD_F] = 'F',
|
||||
[KEYBOARD_G] = 'G',
|
||||
[KEYBOARD_H] = 'H',
|
||||
[KEYBOARD_J] = 'J',
|
||||
[KEYBOARD_K] = 'K',
|
||||
[KEYBOARD_L] = 'L',
|
||||
|
||||
[KEYBOARD_Z] = 'Z',
|
||||
[KEYBOARD_X] = 'X',
|
||||
[KEYBOARD_C] = 'C',
|
||||
[KEYBOARD_V] = 'V',
|
||||
[KEYBOARD_B] = 'B',
|
||||
[KEYBOARD_N] = 'N',
|
||||
[KEYBOARD_M] = 'M',
|
||||
|
||||
[KEYBOARD_LEFT] = '<',
|
||||
[KEYBOARD_RIGHT] = '?',
|
||||
[KEYBOARD_UP] = ':',
|
||||
[KEYBOARD_DOWN] = '>',
|
||||
|
||||
[KEYBOARD_UNDERSCORE] = '_',
|
||||
[KEYBOARD_EQUALS] = '+',
|
||||
[KEYBOARD_LEFT_BRACKET] = '{',
|
||||
[KEYBOARD_RIGHT_BRACKET] = '}',
|
||||
[KEYBOARD_APOSTROPHE] = '"',
|
||||
[KEYBOARD_BACKSLASH] = '|',
|
||||
};
|
||||
|
||||
static const char * keymap_normal_name[] = {
|
||||
[KEYBOARD_ESC] = "ESC",
|
||||
[KEYBOARD_TAB] = "TAB",
|
||||
[KEYBOARD_SPACE] = "SPACE",
|
||||
[KEYBOARD_MOD_FN] = "FN",
|
||||
[KEYBOARD_MOD_CTRL] = "CTRL",
|
||||
[KEYBOARD_MOD_SHIFT] = "SHIFT",
|
||||
[KEYBOARD_MOD_OPT] = "OPT",
|
||||
[KEYBOARD_MOD_ALT] = "ALT",
|
||||
|
||||
[KEYBOARD_LEFT] = ",",
|
||||
[KEYBOARD_RIGHT] = "/",
|
||||
[KEYBOARD_UP] = ";",
|
||||
[KEYBOARD_DOWN] = ".",
|
||||
|
||||
[KEYBOARD_UNDERSCORE] = "-",
|
||||
[KEYBOARD_EQUALS] = "=",
|
||||
[KEYBOARD_LEFT_BRACKET] = "[",
|
||||
[KEYBOARD_RIGHT_BRACKET] = "]",
|
||||
[KEYBOARD_APOSTROPHE] = "'",
|
||||
[KEYBOARD_BACKSLASH] = "\\",
|
||||
|
||||
[KEYBOARD_SHIFT_DELETE] = "DELETE",
|
||||
[KEYBOARD_RETURN] = "RETURN",
|
||||
|
||||
[KEYBOARD_1] = "1",
|
||||
[KEYBOARD_2] = "2",
|
||||
[KEYBOARD_3] = "3",
|
||||
[KEYBOARD_4] = "4",
|
||||
[KEYBOARD_5] = "5",
|
||||
[KEYBOARD_6] = "6",
|
||||
[KEYBOARD_7] = "7",
|
||||
[KEYBOARD_8] = "8",
|
||||
[KEYBOARD_9] = "9",
|
||||
[KEYBOARD_0] = "0",
|
||||
|
||||
[KEYBOARD_Q] = "q",
|
||||
[KEYBOARD_W] = "w",
|
||||
[KEYBOARD_E] = "e",
|
||||
[KEYBOARD_R] = "r",
|
||||
[KEYBOARD_T] = "t",
|
||||
[KEYBOARD_Y] = "y",
|
||||
[KEYBOARD_U] = "u",
|
||||
[KEYBOARD_I] = "i",
|
||||
[KEYBOARD_O] = "o",
|
||||
[KEYBOARD_P] = "p",
|
||||
|
||||
[KEYBOARD_A] = "a",
|
||||
[KEYBOARD_S] = "s",
|
||||
[KEYBOARD_D] = "d",
|
||||
[KEYBOARD_F] = "f",
|
||||
[KEYBOARD_G] = "g",
|
||||
[KEYBOARD_H] = "h",
|
||||
[KEYBOARD_J] = "j",
|
||||
[KEYBOARD_K] = "k",
|
||||
[KEYBOARD_L] = "l",
|
||||
|
||||
[KEYBOARD_Z] = "z",
|
||||
[KEYBOARD_X] = "x",
|
||||
[KEYBOARD_C] = "c",
|
||||
[KEYBOARD_V] = "v",
|
||||
[KEYBOARD_B] = "b",
|
||||
[KEYBOARD_N] = "n",
|
||||
[KEYBOARD_M] = "m",
|
||||
};
|
||||
|
||||
static const char * keymap_shift_name[] = {
|
||||
[KEYBOARD_ESC] = "~",
|
||||
|
||||
[KEYBOARD_1] = "!",
|
||||
[KEYBOARD_2] = "@",
|
||||
[KEYBOARD_3] = "#",
|
||||
[KEYBOARD_4] = "$",
|
||||
[KEYBOARD_5] = "%",
|
||||
[KEYBOARD_6] = "^",
|
||||
[KEYBOARD_7] = "&",
|
||||
[KEYBOARD_8] = "*",
|
||||
[KEYBOARD_9] = "(",
|
||||
[KEYBOARD_0] = ")",
|
||||
|
||||
[KEYBOARD_LEFT] = "<",
|
||||
[KEYBOARD_RIGHT] = "?",
|
||||
[KEYBOARD_UP] = ":",
|
||||
[KEYBOARD_DOWN] = ">",
|
||||
|
||||
[KEYBOARD_UNDERSCORE] = "_",
|
||||
[KEYBOARD_EQUALS] = "+",
|
||||
[KEYBOARD_LEFT_BRACKET] = "{",
|
||||
[KEYBOARD_RIGHT_BRACKET] = "}",
|
||||
[KEYBOARD_APOSTROPHE] = "\"",
|
||||
[KEYBOARD_BACKSLASH] = "|",
|
||||
};
|
||||
|
||||
|
||||
typedef struct {
|
||||
bool fnPressed;
|
||||
|
||||
Reference in New Issue
Block a user