Bawię się klawiaturą matrycową i diodami i napotkałem pewien problem. Wszystko działa ok gdy zapalam diody na PD6 i PD5, jednak gdy dodaję PD4 to ta dioda stale się pali a przyciski nie działają.
int main() {
//bit_is_clear(PINC, PC0) sprawdza czy jest stan niski na PINC PC0
//sbi(PORTD, 4) ustawia stan wysoki na PORTD, PD4
DDRC = 0b00000000;
DDRD = 0b11111111;
PORTC = 0b11111111;
PORTD = 0x00;
while (1) {
if (bit_is_clear(PINC, PC0)) {
_delay_ms(80);
sbi(PORTD, 6);
while (bit_is_clear(PINC, PC0)) {
}
cbi(PORTD, 6);
_delay_ms(80);
} else if (bit_is_clear(PINC, PC1)) {
_delay_ms(80);
sbi(PORTD, 5);
while (bit_is_clear(PINC, PC1)) {
}
cbi(PORTD, 5);
_delay_ms(80);
// po dodaniu tych instrukcji pojawia sie problem
} else if (bit_is_clear(PINC, PC2)) {
_delay_ms(80);
sbi(PORTD, 4);
while (bit_is_clear(PINC, PC2)) {
}
cbi(PORTD, 4);
_delay_ms(80);
}
}
}