class RTC – realtidsklocka¶
Klassen RTC styr MCU:ns inbyggda realtidsklockkringutrustning, som håller väggklockstid över återställningar.
På STM32 OpenMV Cams refererar machine.RTC och pyb.RTC till samma underliggande objekt.
Exempelanvändning:
import machine
rtc = machine.RTC()
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())
Konstruktorer¶
- class machine.RTC(id: int = 0)¶
Returnerar
RTC-singletonen.idaccepteras för portöverskridande kompatibilitet men endast0är giltigt på de OpenMV-stödda portarna (varje cam har en RTC).Metoderna nedan är grupperade efter vilka OpenMV-portar som exponerar dem.
Metoder tillgängliga på alla OpenMV-portar¶
- datetime(datetimetuple: tuple | None = None, /) tuple | None¶
Läs eller ställ in aktuellt datum och tid.
Utan argument returneras det aktuella värdet som en 8-tupel
(year, month, day, weekday, hour, minute, second, subseconds).Med ett enda 8-tupel-argument ställs RTC:n in på det värdet.
weekdayär 1 = måndag till 7 = söndag på STM32, och 0 = måndag till 6 = söndag på mimxrt.subsecondsär sekundens bråkdel i enheter om 1/256 sekund på STM32; på mimxrt och alif är det alltid0.
endast STM32 + mimxrt¶
- init(datetime: tuple) None¶
Initiera RTC:n.
På mimxrt-porten (OpenMV Cam RT1062) är
datetimeobligatoriskt och använder 8-tupeln(year, month, day, weekday, hour, minute, second, subseconds).På STM32 OpenMV-cams tar
init()inget argument: den (om)startar RTC-kringutrustningen och lämnar aktuellt datum/tid orört.
- calibration(value: int | None = None, /) int | None¶
Läs eller ställ in RTC:ns kalibreringsförskjutning (används för att kompensera för fel i kristallfrekvensen).
Det accepterade intervallet och enheterna för
valueär hårdvaruspecifika – värdet skrivs direkt in i MCU:ns RTC-trimregister. Se respektive referensmanual för STM32 / i.MX RT för den exakta kodningen.
endast STM32¶
- info() int¶
Returnerar packad RTC-uppstartsstatus som ett 32-bitars heltal.
De låga 16 bitarna anger antalet millisekunder som RTC:n tog på sig att starta vid den senaste uppstarten. Bit 0x10000 sätts när LSE-oscillatorn (low-speed external) misslyckades och RTC:n föll tillbaka till LSI (intern RC). Bit 0x20000 sätts när RTC:n nyligen initierades vid uppstart (istället för att fortsätta från den föregående påslagningen).
- wakeup(timeout_ms: int | None, callback: Callable[[RTC], None] | None = None, /) None¶
Schemalägg ett periodiskt uppvaknandeavbrott.
timeout_msär perioden i millisekunder. RTC:n utlöses vartimeout_msoch kan väcka MCU:n frånmachine.lightsleep()/machine.deepsleep(). SkickaNoneför att inaktivera uppvaknandetimern.callbackanropas från uppvaknande-IRQ:n; skickaNoneför att inte installera något återanrop (uppvaknandet utlöses fortfarande och väcker MCU:n).
endast mimxrt + alif¶
- alarm(id: int, time: int | tuple, *, repeat: bool = False) None¶
Aktivera RTC-alarmet.
idväljer alarmkanalen (användALARM0).timeär antingen ett heltal antal millisekunder i framtiden, eller en datetime-tupel. Skickarepeat=Trueför att automatiskt återaktivera efter varje utlösning (endast giltigt närtimeär ett millisekundantal).På alif stöds endast formen med millisekundantal.
endast mimxrt¶
- alarm_left(alarm_id: int = 0, /) int¶
Returnerar antalet millisekunder som återstår innan alarmet som identifieras av
alarm_idutlöses.
- cancel(alarm_id: int = 0, /) None¶
Föråldrat alias för
alarm_cancel(), behållet för bakåtkompatibilitet. Planerat att tas bort i MicroPython 2.0.
- irq(*, trigger: int = ALARM0, handler: Callable[[RTC], None] | None = None, wake: int = 0, hard: bool = False) None¶
Registrera ett återanrop för RTC-alarmet.
triggermåste varaALARM0– den enda IRQ-källa som stöds.handleranropas medRTC-instansen när alarmet utlöses.hard=Trueregistrerar en hård avbrottshanterare (ingen heap-allokering i återanropet).wakeaccepteras för portöverskridande kompatibilitet men har ingen effekt.
Konstanter¶
- ALARM0: int¶
Identifierare för RTC:ns enda alarmkanal. Skicka till
alarm(),alarm_left(),alarm_cancel()och argumentettriggeriirq(). endast mimxrt-porten.