Hallo, weiß jemand, ob es einen STM32 gibt, der eine RTC mit Millisekunden hat. Der STM32 den ich z.Z. benutze STM32F103 hat für die RTC einen 32-Bit Counter, damit kann man natürlich keine Uhrzeit + Millisekunden + Datum realisieren, da bräuchte man mindestens ein 64-Bit Counter.
>damit kann man natürlich keine Uhrzeit + Millisekunden + Datum >realisieren, da bräuchte man mindestens ein 64-Bit Counter. Die RTC zählt Sekunden. Wenn du Millisekunden (pi*Daumen) brauchst, kannst ja zum Systick Counter greifen.
Peter schrieb: > da bräuchte man mindestens ein 64-Bit Counter. Dazu hat man Interrupts erfunden. Ein Timer zählt 32 Bit und im Überlauf-Interrupt zählt er noch eine Variable 32 Bit.
Manche haben ein sog. Sub-second-Register, vielleicht hilft das ja. Siehe S. 31 in http://www.st.com/st-web-ui/static/active/cn/resource/technical/document/application_note/DM00025071.pdf
♪Geist schrieb: >>damit kann man natürlich keine Uhrzeit + Millisekunden + Datum >>realisieren, da bräuchte man mindestens ein 64-Bit Counter. > Die RTC zählt Sekunden. Wenn du Millisekunden (pi*Daumen) brauchst, > kannst ja zum Systick Counter greifen. Und der liegt - wie der RTC auch - in der Backup-Domain?
also z.B. der STM32F407VG hat ein Subsecond register soweit ich weiß wird dieser aber nicht gesichert und läuft beim Start wieder bei 0 an. kann mich aber auch irren
@Autor: ♪Geist (Gast) Der Systick Counter geht aus mehreren gründen. 1. RTC wird mit ein speziellen Uhrenquarz angetrieben. Der Systick wird durch die Clock des Microcontroller angetrieben. Dieser ist in meinen Fall nicht so präzise. 2. Systick funktioniert nicht, wenn der Microcontroller schläft (RTC ist in der Bakeup Domain) 3. Systick läuft nicht synchron zur RTC. Wenn man mit Millisekunden arbeiten muss geht pi*Daumen nicht. @Peter Dannegger (peda) Der Microcontroller wird die meiste Zeit im Sleep Modus sein um Strom, und in einstellbaren Zeitabstände soll diese kurz aufwachen, seine Arbeit erledigen und dann wieder schlafen gehen. Diese Zeitabstände sollen halt halt in Millisekunden festlegbar sein (Z.B. 100ms, 5200ms, 100500ms, ...) . Die RTC läuft auch dann wenn der Microcontroller schläft und mit den Ararm Interrupt kann der MC geweckt werden. @Micha (Gast) @Ben W. (ben_w) Das mit den Sub-second-Register könnte vieleicht eine Lösung sein. Dieses muß aber auch wie der RTC Counter laufen, wenn der Microcontroller schläft.
Peter schrieb: > Der Systick Counter geht aus mehreren gründen. Aha ein Wort verschluck, vollständig: Der Systick Counter geht aus mehreren gründen NICHT.
Peter schrieb: > Dieses muß aber auch wie der RTC Counter laufen, wenn der > Microcontroller schläft. Sollte kein Problem sein, dafür gibt es ja "RTC alarm A sub second register" (RTC_ALRMASSR) und dasselbe für Alarm B.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.