#define VENDOR_ID 0xFEED | #define VENDOR_ID 0xFEED | ||||
#define PRODUCT_ID 0x6464 | #define PRODUCT_ID 0x6464 | ||||
#define DEVICE_VER 0x0001 | #define DEVICE_VER 0x0001 | ||||
#define MANUFACTURER geekhack | |||||
#define MANUFACTURER TMK | |||||
#define PRODUCT Alps64 | #define PRODUCT Alps64 | ||||
#define DESCRIPTION t.m.k. keyboard firmware for Alps64 | |||||
#define DESCRIPTION TMK keyboard firmware for Alps64 | |||||
/* key matrix size */ | /* key matrix size */ | ||||
#define MATRIX_ROWS 8 | #define MATRIX_ROWS 8 |
K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \ | K31, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, \ | ||||
K30, K40, K50, K60, K00, K10, K20 \ | K30, K40, K50, K60, K00, K10, K20 \ | ||||
) KEYMAP( \ | ) KEYMAP( \ | ||||
K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, NO, K27, \ | |||||
K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, NUHS,K27, \ | |||||
K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ | K34, K35, K44, K45, K54, K55, K64, K65, K75, K05, K15, K16, K25, K24, \ | ||||
K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ | K32, K33, K43, K52, K53, K63, K73, K74, K03, K04, K13, K14, K23, \ | ||||
K31, NO, K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, NO, \ | |||||
K30, K40, K50, K60, NO, K00, K10, K20 \ | |||||
K31, NUBS,K42, K51, K61, K62, K71, K72, K01, K02, K11, K12, K21, ESC, \ | |||||
K30, K40, K50, K60, APP, K00, K10, K20 \ | |||||
) | ) | ||||
#endif | #endif |
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | ||||
/* 0: qwerty */ | /* 0: qwerty */ | ||||
KEYMAP_AEK( \ | |||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, BSPC, \ | |||||
KEYMAP( \ | |||||
GRV, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, MINS,EQL, NUHS, BSPC, \ | |||||
TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ | TAB, Q, W, E, R, T, Y, U, I, O, P, LBRC,RBRC,BSLS, \ | ||||
CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ | CAPS,A, S, D, F, G, H, J, K, L, SCLN,QUOT,ENT, \ | ||||
LSFT,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT, \ | |||||
LCTL,LGUI,LALT, SPC, RALT,RGUI,RCTL), | |||||
LSFT,NUBS,Z, X, C, V, B, N, M, COMM,DOT, SLSH,RSFT,ESC, \ | |||||
LCTL,LGUI,LALT, SPC, APP, RALT,RGUI,RCTL), | |||||
}; | }; | ||||
const uint16_t PROGMEM fn_actions[] = {}; | const uint16_t PROGMEM fn_actions[] = {}; |
return MATRIX_COLS; | return MATRIX_COLS; | ||||
} | } | ||||
#define LED_ON() do { DDRC |= (1<<5); PORTC |= (1<<5); } while (0) | |||||
#define LED_OFF() do { DDRC &= ~(1<<5); PORTC &= ~(1<<5); } while (0) | |||||
#define LED_TGL() do { DDRC |= (1<<5); PINC |= (1<<5); } while (0) | |||||
void matrix_init(void) | void matrix_init(void) | ||||
{ | { | ||||
// initialize row and col | // initialize row and col | ||||
matrix[i] = 0; | matrix[i] = 0; | ||||
matrix_debouncing[i] = 0; | matrix_debouncing[i] = 0; | ||||
} | } | ||||
//debug | |||||
debug_matrix = true; | |||||
LED_ON(); | |||||
_delay_ms(500); | |||||
LED_OFF(); | |||||
} | } | ||||
uint8_t matrix_scan(void) | uint8_t matrix_scan(void) |