ага, спасибо, код подправил.Ivanoff-iv писал(а):гдето здесь должна быть инверсия?
ну а я об чем? и я об этой функции:Ivanoff-iv писал(а):я не про майн, я про ф-ю static uint8_t get_button_num(void){ кейс ведь в ней...
Код: Выделить всё
static uint8_t get_button_num(void){
uint8_t btn;
while(1){
// опрашиваем кнопки
btn = PIND;
if(btn != 0xFF){
// если хоть какая-то нажата
_delay_ms(15);
// после паузы для защиты от дребезга
if(btn == PIND){
// проверяем, что состояние кнопок не поменялось
// а затем вычисляем номер кнопки
switch(btn){
case 0b11111110: return 1;
case 0b11111101: return 2;
case 0b11111011: return 3;
case 0b11110111: return 4;
case 0b11101111: return 5;
case 0b11011111: return 6;
case 0b10111111: return 7;
case 0b01111111: return 8;
default:
// если нажато несколько кнопок - игнорируем
break;
}
}
}
}
}