Pierwsze pytanie jak masz podłączone diody do portu ? Anodą do atmegi i katodą do masy ?
Druga rzeczy to poczytaj o drganiach styków. Bo ten warunek
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
wykona się bardzo szybko.
A w chwili kiedy ty naciskasz przycisk tam przez dłuższą chwilę (dłuższą w porównaniu do czasu wykonania powyższego sprawdzenia) mogą pojawiać się naprzemiennie stany 0 i 1 dlatego odczytaj sobie wciśnięcie przycisku tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Teraz przez ten okres 100 ms po pierwszym wykryciu zetknięcia się styków przycisku na pewno sytuacja się ustabilizuje i za drugim razem odczytasz już poprawny stan, to raz a dwa ten warunek nie wykona ci się kilka razy (chyba że długo będziesz trzymał przycisk)
Aha i jeszcze odnośnie podłączenia przycisku, skoro odczytujesz go jako poziom niski zakładam że tak masz go własnie podłączonego a więc przydało by się podciągnięcie do VCC na tym wejściu
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Teraz gdy przycisk nie jest wciśnięty odczytasz na tym wejściu stan wysoki, a gdy zewrzesz go przyciskiem do masy - stan niski.