Antystatyczny napisał(a):
Ok, teraz wkleiłeś więcej kodu i widać. Pamiętam, że miałem podobny problem i przeniesienie zmiennych zapamiętujących stan klawiszy do pliku main.c tuż przed funkcją main() natychmiast rozwiązało problem. Kiedyś o to nawet pytałem tu na forum. Widzę, że je masz w common.h, wystawione poza moduł, więc teoretycznie powinno być dobrze...
------------------------ [ Dodano po: 5 minutach ]
Oczywiście wyjmowałeś mikrokontroler i sprawdzałeś multimetrem poprawność działania przycisków, brak zwarć pomiędzy nimi, obecność zasilania na AVCC itd... Choć z drugiej strony, jeśli to fabryczny moduł, to powinien działac poprawnie.
Tak wzystko na liniach zostało rozpięte i "przedzwonione" brak zwarć czy też przerw a połączeniach.
Co dziwniejsze normalna funkcja:
if(!(PINA & (1<<PINA0))){
led();
}
Działa bez problemu - pewnie coś w Superdebounce zawala sprawe.
Powyłączałem nawet wszystkie inne moduły in includy i dalej to samo.