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

atmega8 - blokowanie przerwania int0 i int1 w asm

wirusa 11 Maj 2013 17:02 1629 4
REKLAMA
  • #1 12295516
    wirusa
    Poziom 13  
    Jak po przyjęciu int0 ,zablokować go na czas (500 ms), odblokowując int1, po tym czasie ponownie odblokować int0, blokując int1 itd.?
    czas dowolny (rcall czas).
  • REKLAMA
  • #2 12295564
    excray
    Poziom 41  
    Coś więcej? Rozwiń temat? Od blokowania poszczególnych przerwań INT są bity INT0 i INT1 w GICR. Nie chcesz przerwania od tego zdarzenia? -> Kasujesz bit.
  • REKLAMA
  • #3 12295585
    wirusa
    Poziom 13  
    kasuję od int0, nim przyjdzie int1, nadchodzi przypadkowe od int0, ale nie powinno być obsłużone , lecz blokuje mi obsługę int1 i żadne nie jest obsługiwane, Tak przynajmniej jest w symulatorze avr studio. Nie mam tu źródła (sobota), a tam gdzie źródło nie mam netu, (praca) :(
  • REKLAMA
  • #4 12295592
    excray
    Poziom 41  
    Coś z tym kodem jest mocno nie tak. Oba powinny być obsłużone w kolejności w jakiej zostały zgłoszone. Symulator AVR Studio pozostawia wiele do życzenia. W obsłudze int0 możesz wyłączyć to przerwanie i ponownie włączyć w obsłudze int1. Pamiętaj aby oprócz wyłączenia skasować profilaktycznie również flagę.
  • #5 12295605
    wirusa
    Poziom 13  
    i to może być powód, nie kasowałem flagi ;) , dzięki, sprawdzę w poniedziałek
REKLAMA