Witam, chciałem dokonać obsługi klawisza bez delay'ów. Wciśnięcie klawisza miało wywoływać zewnętrzne przerwanie, które zezwalało na pracę przerwania wewnętrznego (od Timer0). Oto mój kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wartość binarna zmiennej 'i' ma być wyświetlana na diodach, to działa i jest dobrze- problem jest z obsługą klawisza, a tak właściwie nieumiejętnie posłużyłem się przerwaniami i nie wiem co się dzieje. Otóż po wciśnięciu klawisza nic się nie dzieje. Jeżeli dodam inkrementację i w każdym przerwaniu to stan wzrasta, co jakaś sekundę? Czyli coś nie tak... na dodatek jeżeli trzymam klawisz to inkrementacjna ciągle zachodzi chociaż nie powinna (bo przerwanie zewnętrze wywoływane jest opadającym zboczem).
Może ktoś widzi błąd jaki popełniłem?
Dodam, że procesor to ATmega16 taktowana wewnętrznym zegarem 1MHz (takie polecenie).