logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATTiny13 - Jak zasymulować przerwania w Atmel Studio 7.0?

janusz2k 13 Mar 2016 20:54 1518 3
REKLAMA
  • #1 15521102
    janusz2k
    Poziom 15  
    Witam.
    Próbuję powoli nauczyć się pisania w ASM prostych programów na ATTINY13. Mam jednak problem z obsługą przerwań. Nie wiem, czy przyczyną jest błąd w programie, czy też nie umiem zasymulować przerwać w tym symulatorze.
    Otóż w pewnym miejscu programu usypiam uP rozkazem SLEEP (wprowadzam uP w Power Down). Chcę go wybudzić przerwaniem od INT0, (czyli naciśnięciem klawisza). Ale jakoś się nie budzi. Stepowanie zatrzymuje się na tej linii kodu i stoi. Próbowałem różnych opcji: INT0 zboczem, PinChange, nawet uruchomiłem WatchDog Timer dla automatycznego wybudzenia, ale żadne z działań nie daje efektu.
    Czy naciśnięcie klawisza symuluje się w oknie I/O przez kliknięcie bitu portu Pin np 0 ? Zmienia się wtedy kolor bitu, czyli zmienia się chyba jego wartość! Zatem powinno wystąpić przerwanie... (o ile jest dobrze skonfigurowane)
    Co do WDT, to czy jest możliwość podglądniecia aktualnej wartości jego licznika? No bo jak w symulatorze doczekać się przerwania od WDR?
    Nigdzie nie znalazłem w internecie jak się obsługuje ten symulator, jak zasymulować zdarzenia zewnętrzne.
    Proszę o pomoc
    P.S. Ten program nie robi nic konkretnego, to tylko test do nauki ASM
  • REKLAMA
  • #2 15521209
    kamyczek
    Poziom 38  
    Było by lepiej gdybyś wstawił kod zamiast screena , symulator nie obsługuje wszystkich zdarzeń i takie rzeczy to szybciej się robi na płytce testowej niż na symulatorze .
    Musisz ustawić w rejestrze MCUCR odpowiednią wartość dla drzemki , oraz flagę zezwolenia na sen poza tym zainicjować stos , odblokować przerwania i przerwanie int0 ale co ważne ustawić je na wyzwalanie poziomem logicznym bo tylko taki tryb budzi maluszka ze snu.
  • REKLAMA
  • Pomocny post
    #3 15521661
    Mateusz@
    Poziom 18  
    Tools -> Options -> Tools -> Tool settings -> Mask interrupts while stepping
  • #4 15526674
    janusz2k
    Poziom 15  
    Nie dam rady przed weekendem sprawdzić i powalczyć. Dołączyłem program w pliku txt.
    Swego czasu przed wielu laty napisałem na 8051 program (kilkaset bajtów) i o dziwo działał. Myślałem, że teraz też się uda.

    Podziękowania dla Mateusz@ i Kamyczek.
    Rzeczywiście program w trybie STEP ma domyślnie zablokowane przerwania, więc nic nie działało.
REKLAMA