Gast
#538552
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
|
Anzeige
|
Power Save Modus
Gast
#538552
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
Gast
#538588
Welche Sprache?
Gast
#538595
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
Gast
#538603
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
Gast
#538606
oh, da war ich zu langsam :( schau mal da: http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Die_Timer.2FCounter_des_AVR http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Programmieren_mit_Interrupts ..das hast du doch bestimmt schon mal gesehen, oder? ;)
Gast
#538616
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?
Gast
#538621
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();
}
Gast
#538623
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.
Gast
#538624
oh, danke ichhabe keinen externen Clock. Wie mache ich so einen Handler?
Gast
#538627
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.
Gast
#538647
> 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 schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|