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

Kiedy potrzebny jest reset prescalera?

Jakub17 22 Lut 2017 15:36 597 5
  • #1 22 Lut 2017 15:36
    Jakub17
    Poziom 6  

    Witam

    Zastanawiam się czy konieczne jest resetowanie prescalera timera gdy wykorzystujemy go w roli opóźnień. Na początku uruchamiam zezwolenie na przerwania timera w trybie ctc aby licznik zaczął pracować. Gdy licznik wykona swoją robote i odmierzy odcinek czasu, pętla blokująca zostaje wyłączona i wyłączam zezwolenie na przerwania bo są mi one już nie potrzebne.


    1. Czy realizacja mojego opóźnienia jest poprawna czy robi się to jakoś inaczej? W każdym razie działa ale zastanawiam się czy tak się to robi

    2. Czy resetowanie prescalera jest konieczne? W jakich sytuacjach (programach) się tego używa, a w jakich nie? Ten kod realizuje funkcję opóźnienia tak samo dobrze zarówno gdy resetuje prescaler jak i gdy go nie resetuje stąd moje pytanie.


    Kod: c
    Zaloguj się, aby zobaczyć kod

    0 5
  • #2 22 Lut 2017 15:50
    2675900
    Użytkownik usunął konto  
  • Pomocny post
    #3 22 Lut 2017 15:56
    excray
    Poziom 39  

    Kolego jako programista to Ty oceniasz kiedy potrzebny jest reset prescalera. Kiedy używasz prescalera np. 1024 to brak resetu prescalera i zresetowanie jedynie licznika będzie wprowadzać całkiem spory błąd do pomiaru. Prescaler jest wspólny dla większości liczników więc jeśli zależy Ci na dobrej synchronizacji pomiędzy poszczególnymi licznikami to reset preskalera jest również istotny.

    0
  • Pomocny post
    #4 22 Lut 2017 16:41
    tmf
    Moderator Mikrokontrolery Projektowanie

    @Jakub17 Co do prescalera musisz tylko pamiętać o jednym - w chwili odpalenia licnzika, stan preskalera musisz przyjąć za nieokreślony. Wynikają z teog konsekwencje:
    - zniekształcenie pierwszego generowanego przez timer impulsu,
    - wprowadzenie losowego opóźnienia o czasie trwania zależnym od preskalera (np. ustawiony na 64 wprowadza losowe opóźnienie w zakresie 0-63 impulsy).
    Jeśli ci to nie przeszkadza to preskalera nie resetujesz, jeśli przeszkadza to go resetujesz.

    0
  • #5 24 Lut 2017 08:20
    Jakub17
    Poziom 6  

    Ok, czyli raczej wskazane jest resetować prescaler przed jego ponownym uruchomieniem. Więcej to pomaga niż szkodzi. Chociaż kiedyś czytałem tutaj na forum temat gdzie jeden z użytkowników wypowiadał się na temat wyjątku gdzie resetowanie prescalera jest nie wskazane i było to apropo generowania opóźnień za pomocą timera. Niestety nie mogę sobie przypomnieć nazwy tego tematu.

    0
  • Pomocny post
    #6 24 Lut 2017 08:30
    tmf
    Moderator Mikrokontrolery Projektowanie

    @Jakub17 To akurat bzdura. Do realizacji precyzyjnych opóźnień reset preskalera jest konieczny. Inaczej, tak jak pisałem., wprowadzasz pseudolosowy czas związany z nieznanym stanem preskalera.

    0