www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ATmega48 Powersave


Autor: georg d (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: georg d (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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;

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und was steht im CLKPR?

Autor: georg d (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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.

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: georg d (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Oszi krigt das mit. Wenn ich nur den IDLE-Mode wähle funktioniert ja
alles, Auch im ADC-Mode.

Autor: Aleksej (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Datenblatt habe ich nichts gefunden, also es steht ja gar nicht fest,
wie lange mega48 braucht, um aus diesem Powersave Modus aufzuwachen.
Kann natuerlich sein, dass es einiges dauert.

Autor: georg d (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.