Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[ATTiny2313][C] Obliczanie czasu impulsu z wykorzystaniem przerwania i ICP

25 Maj 2011 22:34 1383 1
  • Poziom 30  
    Witam!

    Mam na początku pytanie:
    Co jest pierwsze przy pojawieniu się impulsu na ICP, przerwanie od niego czy przepisanie zawartości licznika do rejestru ICR1?

    Planuję zrobić licznik czasu trwania impulsu i wymyśliłem coś takiego (na razie schematycznie):
    Kod: c
    Zaloguj się, aby zobaczyć kod

    Pomysł jest taki, aby układ wykrywał kiedy jest brak sygnału. Gdy licznik się przepełni, następuje przerwanie od tego i wpisanie 0 do wyniku bezpośrednio.
    Gdy pojawi się sygnał, wartość licznika przepisywana jest do rejestru ICR1 (sprzętowo) a później w przerwaniu licznik jest zerowany.

    Jak widać zastosowałem także "markery" aby wiedzieć kiedy program ma obliczać a kiedy nie.

    Jak sądzicie, zadziała taki pomysł? Czy lepiej np. za zerowanie licznika przepisywać wartość (także w przerwaniu) do jakiejś np. zmiennej i potem dopiero wykonywać na zmiennej obliczenia?

    Pozdrawiam
  • Pomocny post
    Poziom 25  
    Witam,

    gdy obsługujesz przerwanie wartość ICR jest już ustalona, na potrzeby programu możesz założyć, że zdarzenia te następują jednocześnie.
    Możesz także wyzerować spokojnie TCCR, wartość w ICR nie zostanie zmieniona aż do następnego przerwania.

    Pozdrawiam,
    GSM