Problem polega na tym że zostały 3 porty I/0 a przycisków ma być 4.
Więc wymyśliłem że ten czwarty będzie podłączony pod drugi i trzeci na raz a wykrywać to będę programowo, ale coś nie działa tak jak trzeba.
Na 10 prób funkcja wykrywa że naciśnięty został przycisk czwarty 7-8 razy, w reszcie przypadków wykazuje przycisk 2 lub 3.
Zamieszczam moją funkcję i schemat , może da się wykorzystać któryś z używanych już pinów?a może po prostu funkcja kuleje?
Z góry dzięki za pomoc.
Więc wymyśliłem że ten czwarty będzie podłączony pod drugi i trzeci na raz a wykrywać to będę programowo, ale coś nie działa tak jak trzeba.
Na 10 prób funkcja wykrywa że naciśnięty został przycisk czwarty 7-8 razy, w reszcie przypadków wykazuje przycisk 2 lub 3.
Zamieszczam moją funkcję i schemat , może da się wykorzystać któryś z używanych już pinów?a może po prostu funkcja kuleje?
int sprawdzanie_stanu_przyciskow()
{
int wybrano_przycisk=0;
//1-ok
//2-góra
//3-dół
//4-esc
if(bit_is_clear(PINC,PC1)) // guzik ok
{
wybrano_przycisk=1;
_delay_ms(200);
}
if(bit_is_clear(PINB,PB0)) // gora
{
wybrano_przycisk=2;
_delay_ms(200);
}
if(bit_is_clear(PINB,PB1)) // dol
{
wybrano_przycisk=3;
_delay_ms(200);
}
if(bit_is_clear(PINB,PB0) && bit_is_clear(PINB,PB1)) // esc
{
wybrano_przycisk=4;
_delay_ms(300);
}
return wybrano_przycisk;
}
Z góry dzięki za pomoc.