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.idwordt geaccepteerd voor compatibiliteit tussen poorten, maar alleen0is 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.
weekdayis 1 = maandag tot en met 7 = zondag op STM32, en 0 = maandag tot en met 6 = zondag op mimxrt.subsecondsis het fractionele deel van de seconde in eenheden van 1/256 seconde op STM32; op mimxrt en alif is het altijd0.
alleen STM32 + mimxrt¶
- init(datetime: tuple) None¶
Initialiseer de RTC.
Op de mimxrt-poort (OpenMV Cam RT1062) is
datetimevereist 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
valuezijn 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_msis de periode in milliseconden. De RTC vuurt elketimeout_msen kan de MCU wekken uitmachine.lightsleep()/machine.deepsleep(). GeefNonedoor om de wektimer uit te schakelen.callbackwordt aangeroepen vanuit de wek-IRQ; geefNonedoor 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.
idselecteert het alarmkanaal (gebruikALARM0).timeis ofwel een integer aantal milliseconden in de toekomst, ofwel een datetime-tuple. Geefrepeat=Truedoor om automatisch opnieuw te activeren na elke keer vuren (alleen geldig wanneertimeeen 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_idvuurt.
- 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.
triggermoetALARM0zijn – de enige ondersteunde IRQ-bron.handlerwordt aangeroepen met deRTC-instantie wanneer het alarm vuurt.hard=Trueregistreert een hard-interrupt-handler (geen heap-toewijzing in de callback).wakewordt 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 hettrigger-argument vanirq(). Alleen de mimxrt-poort.