Forum: Mikrocontroller und Digitale Elektronik Power Save Modus


von Faller (Gast)


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

von Christian_RX7 (Gast)


Lesenswert?

Welche Sprache?

von Faller (Gast)


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

von Joerg X. (Gast)


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

von Joerg X. (Gast)


Lesenswert?


von Faller (Gast)


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?



von Faller (Gast)


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();
}

von johnny.m (Gast)


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.

von Faller (Gast)


Lesenswert?

oh, danke ichhabe keinen externen Clock. Wie mache ich so einen Handler?

von johnny.m (Gast)


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.

von johnny.m (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.