mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Power Save Modus


Autor: Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Kann mir jemand weiterhelfen:
Suche ein Codebeispiel für die Initailisierung des Power-Save Modus 
(aufwecken übder Timer) für den Atmega48.

Für eure Hilfe Danke ich!

Faller

Autor: Christian_RX7 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welche Sprache?

Autor: Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In c benötige ich das Programm.

Den Befehl für schlafen gehen habe ich:

set_sleep_mode(SLEEP_MODE_PWR_SAVE);
sleep_mode();

Aber zuvor muss ich den Timer2 initialisieren damit er nach eine 
rbestimmten zeit wieder aufwacht. Wie mache ich das?

Danke für die Hilfe!!


Gruß Fabian

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus den Tabellen 8-1 und 8-2 im Datenblatt raussuchen welcher Sleepmode 
geeignet ist ("wake-up sources", Tab 8 -1), den modus einstellen (SMCR, 
aber die C-Compiler haben sogar extra Funktionen), das SE Bit im SMCR 
setzen (bzw. C-funkt...) und den sleep befehl ausführen

Autor: Joerg X. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, da war ich zu langsam :(
schau mal da:
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
http://www.mikrocontroller.net/articles/AVR-GCC-Tu...
..das hast du doch bestimmt schon mal gesehen, oder? ;)

Autor: Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Danke für die Hilfe- ich bin Anfänger und komme leider gar nicht klar 
mit der Interupt Erklärung für den Timer2. Was muss ich beachten?



Autor: Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe den Code zum initialsieren des Interrupts gefunden:
Geht aber irgendwie nicht!!

void timer2 (void)
{
  TIMSK2 |= _BV(TOIE1);         //Timer Overflow  Interrupt enable
  TCNT2 = 0;                   //Rücksetzen des Timers
  TCCR2B = _BV(CS10) | _BV(CS11);
        sei();
}

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du überhaupt einen externen Uhrenquarz an den Oszillatoranschlüssen 
von Timer 2? Ohne den geht das nämlich nicht... Und Du musst natürlich 
einen Interrupt Handler schreiben für den Timer2-Overflow-Interrupt, 
sonst gibts jedes mal nen Reset.

Autor: Faller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, danke ichhabe keinen externen Clock. Wie mache ich so einen Handler?

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja, und Du musst natürlich den Timer 2 auch so konfigurieren, dass 
er mit dem externen Takt (also asynchron) arbeitet. Dazu muss das Bit 
AS2 im ASSR-Register entsprechend gesetzt werden.

Autor: johnny.m (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie mache ich so einen Handler?
Das steht alles im Tutorial.

Aber wie gesagt: Ohne externen Uhrenquarz an TOSC1 und 2 oder einen 
externen Takt an TOSC1 (EXCLK-Bit in ASSR gesetzt) gehts nicht, weil der 
Hauptoszillator im Power Save Modus deaktiviert ist und dementsprechend 
der Timer 2 dann auch nicht läuft.

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.