Nie wiem dlaczego uważasz, że to masło maślane..
Wytłumaczę kod po kolei.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Timer1 jest
wyłączony (nie zlicza impulsów), gdy przycisk KEY2 jest
niewciśnięty zgadza się?
W chwili, gdy przycisk KEY2 zostaje
wciśnięty, Timer1 zostaje
załączony i zaczyna sobie zliczać impulsy zgadza się?
W związku z tym, że Timer1 zlicza impulsy, ja to wykorzystuję w kolejnym warunku i zawczasu obliczyłem, że przy preskalerze 1024 i F_CPU=8MHz otrzymuję ostatecznie sygnał o częstotliwości 78125,5Hz, zgadza się?
Teraz powstaje pytanie ile impulsów musi zliczyć Timer1 aby trwało to 2s, bo taką zwłokę akurat chcę mieć przy długim wciśnięciu klawisza.
2 * 7812,5 = 15625 zgadza się?
I tą wartość wykorzystuję w kolejnym warunku: Jeżeli przycisk KEY2 jest wciśnięty i Timer1 zliczył
mniej niż 15625 impulsów, czyli w sumie czas trwania wduszonego przycisku wynosi mniej niż 2 sekundy, to wtedy WYŁĄCZ LED zgadza się?
Ostatni warunek: Jeżeli LED WYŁĄCZONY ---> WYŁĄCZ Timer1 zgadza się?
Druga część w pętli głównej to jest wszystko to samo z dwoma różnicami:
Jeżeli przycisk KEY2 jest wciśnięty i Timer1 zliczył
więcej niż 15625 impulsów, czyli w sumie czas trwania wduszonego przycisku wynosi więcej niż 2 sekundy, to wtedy ZAŁĄCZ LED zgadza się?
Ostatni warunek: Jeżeli LED ZAŁĄCZONY ---> WYŁĄCZ Timer1 zgadza się?