Forum: Mikrocontroller und Digitale Elektronik Wie zählt ein µC im Sleep-Mode weiter hoch (RTC)


von René K. (tesla24)


Lesenswert?

Hallo an alle,

ich bin gerade in der Planungsphase für ein Projekt. Diesmal benötige 
ich ein RTC welches ich mit dem µC "ATMega 1284" lösen möchte. Da das 
ganze Batteriebetrieben werden soll, möchte ich natürlich alles sparsam 
gestallten.

Ein externes RTC kann ich nicht nutzen, da ich alle Schnittstellen des 
µC schon zwingend benötige.

Im Datenblatt steht das der µC einen RTC Osszi hat, der im sleepmode 
weiter betrieben wird. Ich frage mich aber wie werden meine Variablen 
für Sekunde, Minute, Stunde weitergezählt(im Sleep-Mode)? Gibt es ein 
Register was weiterhin Läuft ? Es bringt mir ja nicht wenn er schön 
weiter zählt, aber nicht aktualisiert.....

Als Hinweis, bisher habe ich noch keine RTC selber programmiert.

Vielen Dank

von Uwe (de0508)


Lesenswert?

Hallo Heiko K.,

damit wirst Du bestimmt den Takt für einen TimerX bereitstellen, der 
dann einen Overflow Interrupt auslößt.

Variable im SRAM, werden sicherlich nicht automatisch im Sleep Mode 
verändert.

von René K. (tesla24)


Lesenswert?

Hallo Uwe S., ;D

vielen Dank schonmal!

Also overflow -> interrupt kommt -> variablen speichern -> wieder in 
sleep mode und dann das ganze wieder von vorn?

P.S.: Ich will dich jetzt nicht vom deinem (und unserem) aktuellen 
Projekt abhalten......

von Max H. (hartl192)


Lesenswert?

Heiko K. schrieb:
> Also overflow -> interrupt kommt -> variablen speichern -> wieder in
> sleep mode und dann das ganze wieder von vorn?
Ist eine Möglichkeit, ansonsten gibt es auch µC die eine RTCC integriert 
haben, die vollkommen unabhängig von der CPU Zeit und Datum weiterzählt, 
wie z.B. den PIC18F46J11

von Uwe (de0508)


Lesenswert?

Heiko K. schrieb:
> P.S.: Ich will dich jetzt nicht vom deinem (und unserem) aktuellen
> Projekt abhalten......

wie bitte ?

Da liegt bestimmt eine Verwechslung vor.

von DingsDa (Gast)


Lesenswert?

Mal das Datenblatt gelesen? NEIN!
Hier das wichtigste daraus:
"If an enabled interrupt occurs while the MCU is in a sleep mode, the 
MCU wakes up. The MCU is then halted for four cycles in addition to the 
start-up time, it executes the interrupt routine, and resumes execution 
from the instruction following SLEEP. The contents of the Register File 
and SRAM are unaltered when the device wakes up from sleep."

von Doppeltroll (Gast)


Lesenswert?

der genannte sleepmode benoetigt einen 32768 Hz Quarz an T0 & T1. der 
Sleepmode zaehlt einen Timer hoch und macht einen Interrupt. in diesem 
interrupt werden die register veraendert, sodass die zeit gezaehlt wird. 
Natuerlich nicht von selbst.

von René K. (tesla24)


Lesenswert?

Vielen Dank für die Antworten und Entschuldigung für die Späte Reaktion,

aber ich hatte bis die letzte Woche extrem viel um die Ohren...

Zu erst einmal @Uwe S. eine Entschuldigung!! Da liegt tatsächlich eine 
Verwechslung vor wo Vorname und S. passen!

Ich werde mich in relativ naher Zukunft intensiv mit dem Projekt 
beschäftigen, der letzte Beitrag hat erstmal meine Frage beantwortet.

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.