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] Bascom AVR Powersave - Jak wybudzać procesor co 5-10 minut?

dzik9999 14 Wrz 2017 14:55 921 5
REKLAMA
  • #1 16699017
    dzik9999
    Poziom 14  
    Witam
    Muszę skorzystać z funkcji powersave, ale czy jest mozliwość aby procesor sam wybudzał się co ok 5-10 min?
    Jednosekundowe przerwania od Timera ogarniam ale zeby ten czas jakoś wydłużyć trzeba korzystać ze zmiennej pomocniczej to teoretcznie wyklucza tryb Powersave.
    Jak to ugryźć
  • REKLAMA
  • #2 16699072
    dondu
    Moderator na urlopie...
    Przeczytaj te artykuły:
    http://mikrokontrolery.blogspot.com/2011/04/SmartPIP-decyzje-strategiczne.html
    http://mikrokontrolery.blogspot.com/2011/04/SmartPIP-Licznik-czasu-testowanie.html

    Timer2 jest 8 bitowy więc zlicza 256 stanów.
    Ustawiając preskaler timer2 na maksymalną wartość 1024 z poniższych obliczeń otrzymasz:

    ilość sekund = 1/(32768 /1024 /256) = 8 sekund

    Co taki czas wybudzi się Twój mikrokonroler a w przerwaniu będziesz odliczał za pomocą zmiennej okres czasu jaki sobie zażyczysz, będący wielokrotnością 8 sekund.
  • REKLAMA
  • #3 16699091
    dzik9999
    Poziom 14  
    Czyli jezeli dobrze rozumuję to co 8 sekund procesor się wybudzi.
    A jakto wygląda z kwarcem bo czytam ze do powersave potrzeny jest 32,768 kHz a do obsługi programu ja potrzebuję 8 MHz.
  • REKLAMA
  • #4 16699105
    dondu
    Moderator na urlopie...
    Dobrze rozumiesz.
    Odliczasz odcinki 8-mio sekundowe i ponownie go usypiasz.

    Niestety ten mikrokontroler nie ma osobnych wyjść XTAL i TOSC.
    Gdy zmienisz na taki który je ma, to będziesz mógł korzystać z kwarcu 8MHz oraz kwarcu 32,768kHz.

    Możesz natomiast użyć wewnętrzny generator RC 8MHz, chyba że są jakieś inne przeciwwskazania, ale to na razie wiesz tylko Ty, bo nie znamy szczegółów projektu.
  • REKLAMA
  • #5 16699113
    dzik9999
    Poziom 14  
    Mam projekt transmisji radiowej i jeden ze scenariuszy dotyczy wysłania bajtu informacji po czym usypia procesor i po jakimś czasie (np 1 minucie) budzi się i ponownie wysyła bajt danych.
    Korzystam z modułów RFM12 oraz RFM01 i RFM02.
    Procesor to atmega8 a fabryczny kwarc (zamontowany na płytkach) to 7,3728MHz(dla RFM12) oraz 11.0592MHz dla RFM 01 i 02

    @dondu
    No i niestety sama próba uśpienia kończy się tylko uspaniem uc. Procesor nie chce się wybudzać od przepełnienia Timera2.
  • #6 16703706
    dondu
    Moderator na urlopie...
    dzik9999 napisał:
    @dondu
    No i niestety sama próba uśpienia kończy się tylko uspaniem uc. Procesor nie chce się wybudzać od przepełnienia Timera2.

    Aby mikrokontroler wybudził się z power save musi mieć podłączony zewnętrzny kwarc 32,768kHz, a timer2 ustawiony do pracy w trybie asynchronicznym.
    Szczegóły podałem Ci w linkach. Przeanalizuj kod programu szczególnie w tym przypadku: http://mikrokontrolery.blogspot.com/2011/04/SmartPIP-Licznik-czasu-testowanie.html
REKLAMA