static void unselect_rows(void)
{
// Hi-Z(DDR:0, PORT:0) to unselect
- DDRC &= ~0b11000000; // PC: 7,6
- PORTC &= ~0b11000000;
- DDRD &= ~0b11000111; // PD: 7,6,2,1,0
- PORTD &= ~0b11000111;
+ DDRC &= ~0b01000000; // PC: 6
+ PORTC &= ~0b01000000;
+ DDRD &= ~0b11100111; // PD: 7,6,5,2,1,0
+ PORTD &= ~0b11100111;
DDRF &= ~0b11000000; // PF: 7,6
PORTF &= ~0b11000000;
}
{
// Output low(DDR:1, PORT:0) to select
// row: 0 1 2 3 4 5 6 7 8
- // pin: PD0, PC7, PD7, PF6, PD6, PD1, PD2, PC6, PF7
+ // pin: PD0, PD5, PD7, PF6, PD6, PD1, PD2, PC6, PF7
switch (row) {
case 0:
DDRD |= (1<<0);
PORTD &= ~(1<<0);
break;
case 1:
- DDRC |= (1<<7);
- PORTC &= ~(1<<7);
+ DDRD |= (1<<5);
+ PORTD &= ~(1<<5);
break;
case 2:
DDRD |= (1<<7);