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

[attiny][C] - Obsługa przycisku w przerwaniu PCINT

23 Paź 2015 12:44 1272 4
REKLAMA
  • #1 15090057
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #2 15090102
    szczywronek
    Poziom 28  
    A mógłbyś napisać czego właściwie nie rozumiesz?

    1. wciskasz przycisk (zmiana stanu wejścia)
    2. uruchamia się przerwanie
    3. zmienna nint się inkrementuje
    4. if (z dużym prawdopodobieństwem) jest spełniony, więc __tmp się inkrementuje
    5. styki drgają i ponownie uruchamia się przerwanie
    6. zmienna nint się inkrementuje
    7. przy poprzednim uruchomieniu przerwania zmienna _debounce_timer została wyzerowana więc teraz if nie jest prawdziwy - __tmp się nie inkrementuje
  • REKLAMA
  • #3 15090116
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • Pomocny post
    #4 15090361
    szczywronek
    Poziom 28  
    Piotrus_999 napisał:
    Warunek w if nie będzie spełniony bo raczej te kilka instrukcji w przerwaniu nie bedzie się wykonywać 20ms.
    Czas wykonywania tego ISR nie ma nic wspólnego z wartością _debounce_timer w momencie porównania.
  • #5 15091060
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA