|
|
@ -42,7 +42,8 @@ static void select_col(uint8_t col);
|
|
|
|
reaches the value in the output compare register,
|
|
|
|
reaches the value in the output compare register,
|
|
|
|
and are turned on when it reaches TOP (=256). */
|
|
|
|
and are turned on when it reaches TOP (=256). */
|
|
|
|
static
|
|
|
|
static
|
|
|
|
void setup_leds(void) {
|
|
|
|
void setup_leds(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
TCCR1A |= // Timer control register 1A
|
|
|
|
TCCR1A |= // Timer control register 1A
|
|
|
|
(1<<WGM10) | // Fast PWM 8-bit
|
|
|
|
(1<<WGM10) | // Fast PWM 8-bit
|
|
|
|
(1<<COM1B1)| // Clear OC1B on match, set at TOP
|
|
|
|
(1<<COM1B1)| // Clear OC1B on match, set at TOP
|
|
|
@ -57,7 +58,6 @@ void setup_leds(void) {
|
|
|
|
PORTB &= 0x3F;
|
|
|
|
PORTB &= 0x3F;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
inline
|
|
|
|
inline
|
|
|
|
uint8_t matrix_rows(void)
|
|
|
|
uint8_t matrix_rows(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -82,7 +82,7 @@ void matrix_init(void)
|
|
|
|
setup_leds();
|
|
|
|
setup_leds();
|
|
|
|
|
|
|
|
|
|
|
|
// initialize matrix state: all keys off
|
|
|
|
// initialize matrix state: all keys off
|
|
|
|
for (uint8_t i=0; i < MATRIX_ROWS; i++) {
|
|
|
|
for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
|
|
|
|
matrix[i] = 0;
|
|
|
|
matrix[i] = 0;
|
|
|
|
matrix_debouncing[i] = 0;
|
|
|
|
matrix_debouncing[i] = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|