]>
git.gir.st - tmk_keyboard.git/blob - keyboard/pana_m8/pana_m8.c
62fdc748e7c859d19bcb07887dcfe977da3fe75d
2 #include <avr/pgmspace.h>
8 #define CLK_HI() (PORTD |= (1<<0))
9 #define CLK_LO() (PORTD &= ~(1<<0))
10 #define STATE() (PIND & (1<<1))
11 #define RST_HI() (PORTD |= (1<<3))
12 #define RST_LO() (PORTD &= ~(1<<3))
13 #define SENSE() (PIND & (1<<2))
15 static matrix_row_t matrix
[8] = {};
18 void matrix_init(void)
21 debug_keyboard
= true;
24 // PD0:Clock PD1:State PD2:Sense_All PD3:Reset(Scan_All)
25 DDRD
= (1<<3) | (1<<0);
26 PORTD
= (1<<2) | (1<<1);
31 uint8_t matrix_scan(void)
34 // Scan_all resets counter
37 // TODO: cannot get reliable value from SENSE()
38 //uint8_t s = SENSE() | STATE();
39 //if (!SENSE()) return 0; // no activated key
44 // 8x8 matrix: row:sense, col:drive, key_on:hi
45 for (uint8_t col
= 0; col
< 8; col
++) {
46 for (uint8_t row
= 0; row
< 8; row
++) {
51 matrix
[row
] |= (1<<col
);
53 matrix
[row
] &= ~(1<<col
);
56 // clock lo - next row
64 matrix_row_t
matrix_get_row(uint8_t row
)
69 void led_set(uint8_t usb_led
)