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

Xmega128A3U - zliczanie impulsów w trybie oszczędzania energii.

Kudzu 22 Maj 2018 10:21 426 4
REKLAMA
  • #1 17234154
    Kudzu
    Poziom 14  
    Potrzebuję porady.
    Przeznaczenie układu jest banalne - zewnętrzny czujnik dla stacji pogodowej.
    Generalnie układ działa tak, że co 15 min wybudza się, zbiera wszystkie dane i je wysyła radiem, następnie zasypia.

    Tryb uśpienia konfiguruję tak:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Tak usypiam po skończonej pracy:
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    A to robię zaraz po przebudzeniu w przerwaniu od zegara (nie wiem czy potrzebnie, skoro i tak przerwanie wybudza procesor?):
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Tak konfigurję zegar ULP generujący sygnał wybudzający (tutaj co ok. 1 min.):
    Kod: C / C++
    Zaloguj się, aby zobaczyć kod


    Wzbogaciłem układ w pluwiometr z kontaktronem, który generuje impulsy co określoną objętość deszczu. Impulsy chcę zliczać, a następnie wraz z pozostałymi danymi przesyłać do centrali. W czasie deszczu impulsów może być kilkadziesiąt, a nawet kilkaset w ciągu tych 15 minut spania procesora.
    Teraz pytanie: jak to zrobić, żeby nie wybudzać procesora przerwaniem tylko po to, żeby zwiększyć jakiś licznik o 1 (słownie: jeden)? Zastanawiam się np. na takim rozwiązaniem, żeby zaprzęgnąć do pracy system zdarzeń i żeby zdarzenie przerwania, powiedzmy INT0 powodowało zwiększenie wartości jakiegoś licznika, np TC0 - mógłbym wtedy co te 15 minut sprawdzać rejestr timera i go zerować. Tylko czy warto?
  • REKLAMA
  • #2 17234571
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #3 17234640
    excray
    Poziom 41  
    A dlaczego masz obiekcje przed wybudzeniem procesora? Przecież to nie zwiększy znacząco zużycia energii jeśli wybudzisz na kilka us procesor raz na jakiś czas. Jeśli masz obiekcje to zawsze możesz użyć zewnętrznego licznika jak DS2423, czy coś w podobnego.
  • REKLAMA
  • #4 17234727
    Kudzu
    Poziom 14  
    excray napisał:
    A dlaczego masz obiekcje przed wybudzeniem procesora? Przecież to nie zwiększy znacząco zużycia energii jeśli wybudzisz na kilka us procesor raz na jakiś czas.

    Patrzyłem przez pryzmat ojca dwójki dzieci - może dlatego wydaje mi się to nieludzkie;)
    Czyli Twoim zdaniem kombinowanie ze zdarzeniami nie ma sensu? Lepiej wybudzić, inkrementować i uśpić?
  • #5 17234770
    Konto nie istnieje
    Konto nie istnieje  
REKLAMA