Dzień dobry.
We wstępie odrazu zaznaczę, że używam zestawu ZL3AVR z mikrokontrolerem ATmega32. Chciałem napisać program w assemblerze, który będzie zliczał wciśnięcia określonego przycisku w dowolnym rejestrze i będzie wyświetlał liczbę wciśnięć binarnie na diodach (czyli przykładowo jeśli wcisnąłem przycisk 7 razy to mają świecić się trzy diody z prawej strony). Wiem, że wciśnięcie przycisku może powodować kilka sygnałów przez co pojedyncze kliknięcie będzie zaliczone jako kilkukrotne, ale na tą chwilę załóżmy, że takie coś nie ma miejsca. Nie mam aktualnie możliwości sprawdzenia działania tego programu poza emulatorem na Atmel studio i jest to mój pierwszy program z wykorzystaniem przerwań, więc mam kilka banalnych pytań.
1) Czy żeby na JP13 pojawił się stan niski to koniecznie muszę ustawić linie kolumn jako wyjścia i ustawić na nich stan niski?
2) Jeśli na JP13 pojawi się stan niski to wystarczy połączyć to złącze ze złączem PD2 i ustawić na nim stan wysoki przez: sbi PORTD,2 żeby następowało przerwanie na linii INT0?
Dodatkowo poniżej wstawiam schemat połączeń oraz kod, w którym zapewne znajdą się błędy.
Będę wdzięczny za każdą uwagę.
Pozdrawiam.
We wstępie odrazu zaznaczę, że używam zestawu ZL3AVR z mikrokontrolerem ATmega32. Chciałem napisać program w assemblerze, który będzie zliczał wciśnięcia określonego przycisku w dowolnym rejestrze i będzie wyświetlał liczbę wciśnięć binarnie na diodach (czyli przykładowo jeśli wcisnąłem przycisk 7 razy to mają świecić się trzy diody z prawej strony). Wiem, że wciśnięcie przycisku może powodować kilka sygnałów przez co pojedyncze kliknięcie będzie zaliczone jako kilkukrotne, ale na tą chwilę załóżmy, że takie coś nie ma miejsca. Nie mam aktualnie możliwości sprawdzenia działania tego programu poza emulatorem na Atmel studio i jest to mój pierwszy program z wykorzystaniem przerwań, więc mam kilka banalnych pytań.
1) Czy żeby na JP13 pojawił się stan niski to koniecznie muszę ustawić linie kolumn jako wyjścia i ustawić na nich stan niski?
2) Jeśli na JP13 pojawi się stan niski to wystarczy połączyć to złącze ze złączem PD2 i ustawić na nim stan wysoki przez: sbi PORTD,2 żeby następowało przerwanie na linii INT0?
Dodatkowo poniżej wstawiam schemat połączeń oraz kod, w którym zapewne znajdą się błędy.
Kod: AVR assembler
Będę wdzięczny za każdą uwagę.
Pozdrawiam.