class RTC – real-time clock#

De RTC-klasse stuurt het on-chip real-time-clock-randapparaat van de MCU aan, dat de kloktijd behoudt over resets heen.

Op STM32 OpenMV Cams verwijzen machine.RTC en pyb.RTC naar hetzelfde onderliggende object.

Voorbeeldgebruik:

import machine

rtc = machine.RTC()
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())

Constructors#

class machine.RTC(id: int = 0)#

Retourneert de RTC-singleton. id wordt geaccepteerd voor compatibiliteit tussen poorten, maar alleen 0 is geldig op de door OpenMV ondersteunde poorten (elke cam heeft één RTC).

De onderstaande methoden zijn gegroepeerd op welke OpenMV-poorten ze beschikbaar stellen.

Methoden die op alle OpenMV-poorten beschikbaar zijn#

datetime(datetimetuple: tuple | None = None, /) tuple | None#

Verkrijg of stel de huidige datum en tijd in.

Zonder argument wordt de huidige waarde geretourneerd als een 8-tuple (year, month, day, weekday, hour, minute, second, subseconds).

Met een enkel 8-tuple-argument wordt de RTC op die waarde ingesteld.

weekday is 1 = maandag tot en met 7 = zondag op STM32, en 0 = maandag tot en met 6 = zondag op mimxrt. subseconds is het fractionele deel van de seconde in eenheden van 1/256 seconde op STM32; op mimxrt en alif is het altijd 0.

alleen STM32 + mimxrt#

init(datetime: tuple) None#

Initialiseer de RTC.

Op de mimxrt-poort (OpenMV Cam RT1062) is datetime vereist en gebruikt het de 8-tuple (year, month, day, weekday, hour, minute, second, subseconds).

Op STM32 OpenMV-cams neemt init() geen argument: het (her)start het RTC-randapparaat en laat de huidige datum/tijd ongemoeid.

calibration(value: int | None = None, /) int | None#

Verkrijg of stel de kalibratie-offset van de RTC in (gebruikt om de frequentiefout van het kristal te compenseren).

Het geaccepteerde bereik en de eenheden van value zijn hardwarespecifiek – de waarde wordt rechtstreeks in het RTC-trimregister van de MCU geschreven. Zie de relevante STM32-/i.MX RT-referentiehandleiding voor de exacte codering.

alleen STM32#

info() int#

Retourneert de ingepakte RTC-opstartstatus als een 32-bits integer.

De lage 16 bits geven het aantal milliseconden aan dat de RTC nodig had om op te starten bij de meest recente boot. Bit 0x10000 is gezet wanneer de LSE-oscillator (low-speed external) faalde en de RTC terugviel op de LSI (interne RC). Bit 0x20000 is gezet wanneer de RTC bij het opstarten nieuw werd geïnitialiseerd (in plaats van door te gaan vanaf de vorige inschakeling).

wakeup(timeout_ms: int | None, callback: Callable[[RTC], None] | None = None, /) None#

Plan een periodieke wekinterrupt in.

timeout_ms is de periode in milliseconden. De RTC vuurt elke timeout_ms en kan de MCU wekken uit machine.lightsleep() / machine.deepsleep(). Geef None door om de wektimer uit te schakelen.

callback wordt aangeroepen vanuit de wek-IRQ; geef None door om geen callback te installeren (de wekgebeurtenis vuurt nog steeds en wekt de MCU).

alleen mimxrt + alif#

alarm(id: int, time: int | tuple, *, repeat: bool = False) None#

Activeer het RTC-alarm. id selecteert het alarmkanaal (gebruik ALARM0). time is ofwel een integer aantal milliseconden in de toekomst, ofwel een datetime-tuple. Geef repeat=True door om automatisch opnieuw te activeren na elke keer vuren (alleen geldig wanneer time een millisecondentelling is).

Op alif wordt alleen de vorm met millisecondentelling ondersteund.

alleen mimxrt#

alarm_left(alarm_id: int = 0, /) int#

Retourneert het aantal milliseconden dat resteert voordat het alarm geïdentificeerd door alarm_id vuurt.

alarm_cancel(alarm_id: int = 0, /) None#

Annuleer een eerder geactiveerd alarm.

cancel(alarm_id: int = 0, /) None#

Verouderde alias voor alarm_cancel(), behouden voor achterwaartse compatibiliteit. Gepland voor verwijdering in MicroPython 2.0.

irq(*, trigger: int = ALARM0, handler: Callable[[RTC], None] | None = None, wake: int = 0, hard: bool = False) None#

Registreer een callback voor het RTC-alarm.

trigger moet ALARM0 zijn – de enige ondersteunde IRQ-bron. handler wordt aangeroepen met de RTC-instantie wanneer het alarm vuurt. hard=True registreert een hard-interrupt-handler (geen heap-toewijzing in de callback). wake wordt geaccepteerd voor compatibiliteit tussen poorten, maar heeft geen effect.

Constanten#

ALARM0: int#

Identifier voor het enkele alarmkanaal van de RTC. Geef door aan alarm(), alarm_left(), alarm_cancel() en het trigger-argument van irq(). Alleen de mimxrt-poort.