ATmega48 Powersave

Gast #279510
Lesenswert?
• ▲
▼
Hallo,
ich baue gerade mit dem ATmega48 eine Uhr. Ich nutze den Timer 2  um im
Power-save-mode richtig Strom zu sparen. Das dumme ist nur das er dann
nur noch mit 1/16 der Frequenz arbeitet. Das Heist die Uhr nur aller
16s weiterzählt, sobald ich ihn in der main-Schleife in Power-down
schicke. Wenn ich das nicht mache läuts normal.

Hat jemand eine Erklärung dafür?

Ich arbeite mit einen 32,768kHz Quarz, einem Preteiler von 8 und komme
so auf 16 Interrupts je Sekunde um noch die Tastatur abzufragen.
Gast #279511
Lesenswert?
• ▲
▼
Was fuer einen Preteiler verwendest du denn - Timer/Counter Prescaler
oder Clock Prescaler? Kann schon moeglich sein, dass du den zweiten
Preteiler auch aktiviert hast...
Und es steht ja auch im Datenblatt, dass Timer2 Output Compare
Interrupt im PowerSave Modus auch aktiv ist, das heisst, dass du auf
jeden Fall diese Frequenz vergroessern kannst
Gast #279512
Lesenswert?
• ▲
▼
Ich arbeite mit dem Timer Precaler. Die PWM arbeitet auch richtig. Die
brauch ich für den LCD-CLK nur der Interrupt kommt nur so selten.
hier meine Timereistellung:
  TCCR2A = (1<<COM2A1)|(1<<COM2A0)|(1<<WGM21)|(1<<WGM20);  //0;
  TCCR2B = (1<<CS21);//Timer 0 mit CLK/8 = 16Hz
  TIMSK2 = (1<<TOIE2);
  OCR2A = 0x80;
Gast #279514
Lesenswert?
• ▲
▼
Das CLKPR ist 0x0. Der PIN OC2A arbeitet ja auch richtig mit exakt16,000
Hz und 50% dutycikle (laut Dienst-Oszi), nur der interrupt kommt nur mit
0,9 Hz. Diese Frequenz hängt auch noch von der Größe der
Interruptseviceroutine ab.
ich hänge mal das mini Testprogram an.
Angehängte Dateien:
Gast #279515
Lesenswert?
• ▲
▼
Keine Ahnung, soll eigentlich alles in Ordnung sein. Bist du sicher,
dass es wirklich 16 Hz sind? Ist es moeglich, dass du diese PORTB
=0x01; ... PORTB =0x00; irgendie verpasst? Die sind doch relativ kurz
(400us bei 16Hz also 64ms)
Gast #279518
Lesenswert?
• ▲
▼
Ich hab das Problem jetzt gelößt.
Ich muß den Timer 2 im asynchonen Mode mit dem externen Quarz laufen
lassen, also ASSR=0x20. Die Clocksource aber vom internen RC-Oszilator.
Dann klapt es :-) und der Controller brauch bei 3V nur 8µA. Die ganze
Uhr mit LCDisplay und Treiber nur 10µA :-))

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.