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] Wasza opinia na temat rozwiązania

dondu 08 Lis 2010 01:37 1058 2
REKLAMA
  • #1 8716530
    dondu
    Moderator na urlopie...
    Charakter projektu:

    - uczę się :-)
    - miniaturowa zabawka (załóżmy breloczek do kluczy)
    - 1 przycisk (MAGIC BUTTON w skrócie MB) do obsługi całości
    - generuje dźwięki w zależności od sposobu przyciskania MB
    - bez wyświetlaczy diod itp.
    - zasada działania podobna do psa: zawołasz go to się z Tobą bawi do momentu gdy przestaniesz, chwilę czeka i jeżeli dalej nic to idzie spać.
    - MINIMALIZACJA POBORU ENERGII !


    Funkcje Magic Button:
    1. 5 sek - wychodzi z głębokiego snu typu: Power-down Mode
    2. coś generuje i czekając na reakcję użytkownika (naciskanie MB)
    3. jeżeli nie ma reakcji przechodzi do Idle Mode i czeka czujnie licząc upływający czas
    4. Jeżeli nie podejmiesz zabawy w ciągu np. 1 minuty zasypia: Power-down Mode

    W trakcie zabawy reaguje w różny sposób na przyciskanie MB. Zlicza ilości oraz długości przyciśnięć i generuje różne dźwięki.

    Schemat banalnie prosty:
    [Atmega8] Wasza opinia na temat rozwiązania


    O co pytam?

    Chciałbym poznać Wasze zdanie na temat czy do takich funkcjonalności dobrze dobrałem zasady podłączenia przycisku i doboru przerwań:


    INT0
    Będzie sterowany timerem wewnętrznym. Ma za zadanie:
    - wychodzić z Idle mode
    - bada stan przycisku na porcie PB3
    - zliczać czas reakcji użytkownika,
    - zlicza czasy przyciśnięć klawisza
    - generuje kolejną próbkę dźwięku (jakieś piszczenie zależne od sytuacji).
    - gdy już się nie bawimy (np 1 minutę) to włącza przerwanie INT1 i zasypia w power down.


    INT1
    Wyzwalane poziomem bo ma budzić się za pomocą niego z power down (jedyna funkcja przrwania). Po zbudzeniu przerwanie samo się wyłącza, bo jego włączeniem zajmie się INT0 ponownie tuż przed wejściem do power down, gdy użytkownik po długim czasie nie używa urządzenia.


    CLK
    Kwarc zewnętrzny lub nawet RC wewnętrzne. Czy RC wewnętrzne zużywa więcej energii niż kwarc zewnętrzny?


    SLEEP Idle mode
    Pomiędzy przerwaniami INT0 cały czas śpi w idle mode
  • REKLAMA
  • Pomocny post
    #2 8716691
    tmf
    VIP Zasłużony dla elektroda
    Masz to zrobione ok, z tym, że zamiast starej ATMegi8 zastosuj coś nowszego, co ma zdecydowanie mniejszy pobór energii. Nie zapomnij podłączyć także AGND. AVcc też nie zaszkodzi. No i przemyśl zastosowanie ATTiny. Taktowanie możesz zrobić na zewnętrznym kwarcu 32768Hz - nie ze względu na stabilność, lecz na zużycie energii - twoja aplikacja nie wymaga demonicznych prędkości - ile procesor zużywa energii w zależności od zegara znajdziesz w nocie katalogowej.
REKLAMA