RTC osztály – valós idejű óra¶
Az RTC osztály az MCU beépített valós idejű óra perifériáját vezérli, amely az újraindításokon át megőrzi a pontos időt.
STM32 OpenMV Cam eszközökön a machine.RTC és a pyb.RTC ugyanarra az alapul fekvő objektumra hivatkozik.
Példa használat:
import machine
rtc = machine.RTC()
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())
Konstruktorok¶
- class machine.RTC(id: int = 0)¶
Visszaadja az
RTCsingleton példányt. Azida portok közötti kompatibilitás érdekében elfogadott, de az OpenMV által támogatott portokon csak a0érvényes (minden kamerában egy RTC van).Az alábbi metódusok aszerint vannak csoportosítva, hogy mely OpenMV portok teszik őket elérhetővé.
Az összes OpenMV porton elérhető metódusok¶
- datetime(datetimetuple: tuple | None = None, /) tuple | None¶
Az aktuális dátum és idő lekérdezése vagy beállítása.
Argumentum nélkül az aktuális értéket egy 8-elemű kettősként (tuple) adja vissza:
(year, month, day, weekday, hour, minute, second, subseconds).Egyetlen 8-elemű kettős (tuple) argumentummal az RTC-t az adott értékre állítja.
A
weekdaySTM32-n 1 = hétfő-től 7 = vasárnap-ig, mimxrt-n pedig 0 = hétfő-től 6 = vasárnap-ig terjed. Asubsecondsa másodperc tört része STM32-n 1/256 másodperc egységekben; mimxrt-n és alif-on mindig0.
csak STM32 + mimxrt¶
- init(datetime: tuple) None¶
Az RTC inicializálása.
A mimxrt porton (OpenMV Cam RT1062) a
datetimekötelező, és a 8-elemű(year, month, day, weekday, hour, minute, second, subseconds)kettőst használja.STM32 OpenMV kamerákon az
init()nem fogad argumentumot: (újra)indítja az RTC perifériát, az aktuális dátumot / időt érintetlenül hagyva.
- calibration(value: int | None = None, /) int | None¶
Az RTC kalibrációs eltolásának lekérdezése vagy beállítása (a kristályfrekvencia-hiba kompenzálására használatos).
A
valueelfogadott tartománya és mértékegysége hardver-specifikus – az érték közvetlenül az MCU RTC trim regiszterébe íródik. A pontos kódolásért lásd a vonatkozó STM32 / i.MX RT referenciakézikönyvet.
csak STM32¶
- info() int¶
Visszaadja a tömörített RTC indítási állapotot 32 bites egész számként.
Az alsó 16 bit megadja, hogy az RTC hány ezredmásodperc alatt indult el a legutóbbi rendszerindításkor. A 0x10000 bit akkor van beállítva, ha az LSE (alacsony sebességű külső) oszcillátor meghibásodott, és az RTC az LSI (belső RC) oszcillátorra váltott. A 0x20000 bit akkor van beállítva, ha az RTC újonnan lett inicializálva a rendszerindításkor (nem pedig az előző bekapcsolásból folytatódott).
- wakeup(timeout_ms: int | None, callback: Callable[[RTC], None] | None = None, /) None¶
Periodikus felébresztő megszakítás ütemezése.
A
timeout_msa periódus ezredmásodpercben. Az RTC mindentimeout_msután kioldódik, és felébresztheti az MCU-t amachine.lightsleep()/machine.deepsleep()állapotból. Adja át aNoneértéket a felébresztő időzítő letiltásához.A
callbacka felébresztő IRQ-ból hívódik meg; adja át aNoneértéket, ha nem szeretne visszahívást beállítani (a felébresztés ekkor is kioldódik és felébreszti az MCU-t).
csak mimxrt + alif¶
- alarm(id: int, time: int | tuple, *, repeat: bool = False) None¶
Az RTC riasztó élesítése. Az
idválasztja ki a riasztási csatornát (használja azALARM0értéket). Atimevagy egy egész szám, amely a jövőbeni ezredmásodpercek száma, vagy egy datetime kettős (tuple). Adja át arepeat=Trueértéket, hogy minden kioldás után automatikusan újraélesítse (csak akkor érvényes, ha atimeegy ezredmásodperc-szám).alif-on csak az ezredmásodperc-szám forma támogatott.
csak mimxrt¶
- alarm_left(alarm_id: int = 0, /) int¶
Visszaadja az
alarm_idáltal azonosított riasztó kioldásáig hátralévő ezredmásodpercek számát.
- cancel(alarm_id: int = 0, /) None¶
Az
alarm_cancel()elavult aliasa, amely a visszafelé kompatibilitás érdekében maradt meg. Eltávolítása a MicroPython 2.0 verzióra van ütemezve.
- irq(*, trigger: int = ALARM0, handler: Callable[[RTC], None] | None = None, wake: int = 0, hard: bool = False) None¶
Visszahívás regisztrálása az RTC riasztóhoz.
A
triggerértékénekALARM0-nak kell lennie – ez az egyetlen támogatott IRQ forrás. AhandlerazRTCpéldánnyal hívódik meg, amikor a riasztó kioldódik. Ahard=Trueegy hardveres megszakításkezelőt regisztrál (nincs kupacfoglalás a visszahívásban). Awakea portok közötti kompatibilitás érdekében elfogadott, de nincs hatása.
Konstansok¶
- ALARM0: int¶
Az RTC egyetlen riasztási csatornájának azonosítója. Adja át az
alarm(),alarm_left(),alarm_cancel()metódusoknak és azirq()triggerargumentumának. Csak mimxrt port.