2016-06-07 22:57:41 +01:00
|
|
|
.. currentmodule:: pyb
|
2015-06-10 22:29:56 +01:00
|
|
|
.. _pyb.RTC:
|
|
|
|
|
2014-10-31 22:21:37 +00:00
|
|
|
class RTC -- real time clock
|
|
|
|
============================
|
2014-10-31 01:37:19 +00:00
|
|
|
|
2021-01-19 09:22:04 +00:00
|
|
|
The RTC is an independent clock that keeps track of the date
|
2014-10-31 01:37:19 +00:00
|
|
|
and time.
|
|
|
|
|
|
|
|
Example usage::
|
|
|
|
|
|
|
|
rtc = pyb.RTC()
|
|
|
|
rtc.datetime((2014, 5, 1, 4, 13, 0, 0, 0))
|
|
|
|
print(rtc.datetime())
|
|
|
|
|
|
|
|
|
|
|
|
Constructors
|
|
|
|
------------
|
|
|
|
|
2022-06-21 05:33:23 +01:00
|
|
|
.. class:: RTC()
|
2014-10-31 01:37:19 +00:00
|
|
|
|
|
|
|
Create an RTC object.
|
|
|
|
|
|
|
|
|
|
|
|
Methods
|
|
|
|
-------
|
|
|
|
|
2016-06-08 14:21:28 +01:00
|
|
|
.. method:: RTC.datetime([datetimetuple])
|
2014-10-31 01:37:19 +00:00
|
|
|
|
|
|
|
Get or set the date and time of the RTC.
|
2019-12-04 04:02:54 +00:00
|
|
|
|
2014-10-31 01:37:19 +00:00
|
|
|
With no arguments, this method returns an 8-tuple with the current
|
|
|
|
date and time. With 1 argument (being an 8-tuple) it sets the date
|
2018-05-21 05:08:37 +01:00
|
|
|
and time (and ``subseconds`` is reset to 255).
|
2019-12-04 04:02:54 +00:00
|
|
|
|
2018-07-18 06:47:44 +01:00
|
|
|
The 8-tuple has the following format:
|
2019-12-04 04:02:54 +00:00
|
|
|
|
2018-07-18 06:47:44 +01:00
|
|
|
(year, month, day, weekday, hours, minutes, seconds, subseconds)
|
2015-06-10 22:29:56 +01:00
|
|
|
|
2018-07-18 06:47:44 +01:00
|
|
|
``weekday`` is 1-7 for Monday through Sunday.
|
|
|
|
|
|
|
|
``subseconds`` counts down from 255 to 0
|
|
|
|
|
|
|
|
.. method:: RTC.wakeup(timeout, callback=None)
|
|
|
|
|
|
|
|
Set the RTC wakeup timer to trigger repeatedly at every ``timeout``
|
|
|
|
milliseconds. This trigger can wake the pyboard from both the sleep
|
|
|
|
states: :meth:`pyb.stop` and :meth:`pyb.standby`.
|
|
|
|
|
|
|
|
If ``timeout`` is ``None`` then the wakeup timer is disabled.
|
|
|
|
|
|
|
|
If ``callback`` is given then it is executed at every trigger of the
|
|
|
|
wakeup timer. ``callback`` must take exactly one argument.
|
|
|
|
|
|
|
|
.. method:: RTC.info()
|
|
|
|
|
|
|
|
Get information about the startup time and reset source.
|
|
|
|
|
|
|
|
- The lower 0xffff are the number of milliseconds the RTC took to
|
|
|
|
start up.
|
|
|
|
- Bit 0x10000 is set if a power-on reset occurred.
|
|
|
|
- Bit 0x20000 is set if an external reset occurred
|
|
|
|
|
|
|
|
.. method:: RTC.calibration(cal)
|
|
|
|
|
|
|
|
Get or set RTC calibration.
|
|
|
|
|
|
|
|
With no arguments, ``calibration()`` returns the current calibration
|
|
|
|
value, which is an integer in the range [-511 : 512]. With one
|
|
|
|
argument it sets the RTC calibration.
|
|
|
|
|
|
|
|
The RTC Smooth Calibration mechanism adjusts the RTC clock rate by
|
|
|
|
adding or subtracting the given number of ticks from the 32768 Hz
|
|
|
|
clock over a 32 second period (corresponding to 2^20 clock ticks.)
|
|
|
|
Each tick added will speed up the clock by 1 part in 2^20, or 0.954
|
|
|
|
ppm; likewise the RTC clock it slowed by negative values. The
|
|
|
|
usable calibration range is:
|
|
|
|
(-511 * 0.954) ~= -487.5 ppm up to (512 * 0.954) ~= 488.5 ppm
|