Line: 1 to 1 | ||||||||
---|---|---|---|---|---|---|---|---|
Real Time Clock
Intro
| ||||||||
Changed: | ||||||||
< < | Most MCUs integrate a real time clock as peripheral. STM32 MCUs are no different. Many designs have its own 32.768 kHz quartz for precise timing, about 10 ppm without trimming. | |||||||
> > | Most MCUs integrate a real time clock as peripheral. STM32 MCUs are no different. Many designs have their own 32.768 kHz quartz for precise timing, about 10 ppm without trimming. | |||||||
RTC WordsEpoch is 1.1.1970 (Unix time stamp). But valid dates are from 1.1.2000 to 31.12.2099 because of the STM32 RTC peripheral.time@ ( -- u ) Return the unix time stamp. time! ( u -- ) Set the real time clock. .time ( -- ) Print the current date and time (YYYY-MM-DDTHH:MM:SS ISO 8601). clktime ( -- u ) hour*10000 + minute*100 + second clkdate ( -- u ) Year*10000 + Month*100 + Day time&date ( -- n1 n2 n3 n4 n5 n6 ) Return the current time and date. n1 second {0...59}, n2 minute {0...59}, n3 hour {0...23}, n4 day {1...31} n5 month {1...12}, n6 year (e.g. 1991) * date Print date unix style Mon Jan 1 01:57:52 2000 wait-alarm ( -- ) Wait for an alarm alarm! (h m s -- ) Set the alarm, invalid parameters e.g. -1 mask the parameter ms ( u -- ) Wait at least u millisecond (osDelay) * *) part of ansification.fs How to UseSet the current date and timeCopy the current time stamp from a Unix machine (GNU/Linux box) or from https://www.unixtimestamp.com/:$ date +%s 1602430522Paste the time stamp in the Mecrisp-Cube console: ok. 1602430522 time![RET] ok. .time[RET] 2020-10-11T15:35:27 ok. date[RET] Sun Oct 11 15:36:02 2020 Set AlarmsWake me at 06:006 0 0 alarm! wait-alarm .( Get Up!)[RET] Get Up! ok.If you want an alarm every second: -1 -1 -1 alarm![RET] ok.for every minute: -1 -1 0 alarm![RET] ok.Stop the alarms: 0 0 0 alarm![RET] ok. : count-down ( -- ) -1 -1 -1 alarm! \ an alarm every second 10 0 do cr 10 i - . wait-alarm loop cr ." 0 Launch!" ; count-down[RET] 10 9 8 7 6 5 4 3 2 1 0 Launch! ok. This work by Peter Schmid is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License. |