Convert some AVR GPIO operations to macros (#23424)
This commit is contained in:
parent
7220715dd1
commit
61c7c1f74c
71 changed files with 877 additions and 840 deletions
|
@ -65,8 +65,8 @@ void matrix_init(void)
|
|||
#endif
|
||||
|
||||
// 85 REST
|
||||
DDRD |= _BV(PD7);
|
||||
PORTD |= _BV(PD7);
|
||||
gpio_set_pin_output(D7);
|
||||
gpio_write_pin_high(D7);
|
||||
|
||||
// initialize row and col
|
||||
init_rows();
|
||||
|
@ -143,36 +143,35 @@ static void init_cols(void)
|
|||
DDRD &= 0b00011100;
|
||||
PORTD |= 0b11100011;
|
||||
|
||||
DDRB &= ~(_BV(PB6) | _BV(PB7)| _BV(PB0));
|
||||
PORTB |= (_BV(PB6) | _BV(PB7)| _BV(PB0));
|
||||
gpio_set_pin_input_high(B0);
|
||||
gpio_set_pin_input_high(B6);
|
||||
gpio_set_pin_input_high(B7);
|
||||
|
||||
DDRE &= ~_BV(PE6);
|
||||
PORTE |= _BV(PE6);
|
||||
gpio_set_pin_input_high(E6);
|
||||
|
||||
DDRC &= ~_BV(PC7);
|
||||
PORTC |= _BV(PC7);
|
||||
gpio_set_pin_input_high(C7);
|
||||
|
||||
}
|
||||
|
||||
static matrix_row_t read_cols(void)
|
||||
{
|
||||
|
||||
return (PINF&_BV(PF7) ? 0 : (1<<0)) |
|
||||
(PINF&_BV(PF6) ? 0 : (1<<1)) |
|
||||
(PINF&_BV(PF5) ? 0 : (1<<2)) |
|
||||
(PINF&_BV(PF4) ? 0 : (1<<3)) |
|
||||
(PINF&_BV(PF1) ? 0 : (1<<4)) |
|
||||
(PINF&_BV(PF0) ? 0 : (1<<5)) |
|
||||
(PINE&_BV(PE6) ? 0 : (1<<6)) |
|
||||
(PIND&_BV(PD7) ? 0 : (1<<7)) |
|
||||
(PIND&_BV(PD6) ? 0 : (1<<8)) |
|
||||
(PIND&_BV(PD5) ? 0 : (1<<9)) |
|
||||
(PIND&_BV(PD1) ? 0 : (1<<10)) |
|
||||
(PIND&_BV(PD0) ? 0 : (1<<11)) |
|
||||
(PINB&_BV(PB7) ? 0 : (1<<12)) |
|
||||
(PINB&_BV(PB6) ? 0 : (1<<13)) |
|
||||
(PINB&_BV(PB0) ? 0 : (1<<14)) |
|
||||
(PINC&_BV(PC7) ? 0 : (1<<15));
|
||||
return (gpio_read_pin(F7) ? 0 : (1<<0)) |
|
||||
(gpio_read_pin(F6) ? 0 : (1<<1)) |
|
||||
(gpio_read_pin(F5) ? 0 : (1<<2)) |
|
||||
(gpio_read_pin(F4) ? 0 : (1<<3)) |
|
||||
(gpio_read_pin(F1) ? 0 : (1<<4)) |
|
||||
(gpio_read_pin(F0) ? 0 : (1<<5)) |
|
||||
(gpio_read_pin(E6) ? 0 : (1<<6)) |
|
||||
(gpio_read_pin(D7) ? 0 : (1<<7)) |
|
||||
(gpio_read_pin(D6) ? 0 : (1<<8)) |
|
||||
(gpio_read_pin(D5) ? 0 : (1<<9)) |
|
||||
(gpio_read_pin(D1) ? 0 : (1<<10)) |
|
||||
(gpio_read_pin(D0) ? 0 : (1<<11)) |
|
||||
(gpio_read_pin(B7) ? 0 : (1<<12)) |
|
||||
(gpio_read_pin(B6) ? 0 : (1<<13)) |
|
||||
(gpio_read_pin(B0) ? 0 : (1<<14)) |
|
||||
(gpio_read_pin(C7) ? 0 : (1<<15));
|
||||
}
|
||||
|
||||
/* Row pin configuration
|
||||
|
@ -184,21 +183,23 @@ static matrix_row_t read_cols(void)
|
|||
|
||||
static void init_rows(void)
|
||||
{
|
||||
DDRB |= (1<<PB1 | 1<<PB2 | 1<<PB3);
|
||||
gpio_set_pin_input(B1);
|
||||
gpio_set_pin_input(B2);
|
||||
gpio_set_pin_input(B3);
|
||||
}
|
||||
|
||||
static void unselect_rows(void)
|
||||
{
|
||||
// Hi-Z(DDR:0, PORT:0) to unselect
|
||||
PORTB |= (1<<PB1);
|
||||
PORTB |= (1<<PB2);
|
||||
PORTB |= (1<<PB3);
|
||||
gpio_write_pin_high(B1);
|
||||
gpio_write_pin_high(B2);
|
||||
gpio_write_pin_high(B3);
|
||||
}
|
||||
|
||||
static void select_row(uint8_t row)
|
||||
{
|
||||
// Output low(DDR:1, PORT:0) to select
|
||||
(row & (1<<0)) ? (PORTB |= (1<<PB3)) : (PORTB &= ~(1<<PB3));
|
||||
(row & (1<<1)) ? (PORTB |= (1<<PB2)) : (PORTB &= ~(1<<PB2));
|
||||
(row & (1<<2)) ? (PORTB |= (1<<PB1)) : (PORTB &= ~(1<<PB1));
|
||||
gpio_write_pin(B3, row & (1<<0));
|
||||
gpio_write_pin(B2, row & (1<<1));
|
||||
gpio_write_pin(B1, row & (1<<2));
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue