class RTC – sat stvarnog vremena

Klasa RTC upravlja periferijom sata stvarnog vremena ugrađenom u MCU, koja održava vrijeme zidnog sata tijekom resetiranja.

Na STM32 OpenMV kamerama machine.RTC i pyb.RTC upućuju na isti temeljni objekt.

Primjer korištenja:

import machine

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

Konstruktori

class machine.RTC(id: int = 0)

Vraća singleton RTC. id se prihvaća radi kompatibilnosti među portovima, ali je samo 0 valjan na portovima koje podržava OpenMV (svaka kamera ima jedan RTC).

Metode u nastavku grupirane su prema tome koji ih OpenMV portovi izlažu.

Metode dostupne na svim OpenMV portovima

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

Dohvaća ili postavlja trenutni datum i vrijeme.

Bez argumenta vraća trenutnu vrijednost kao 8-člana torka (year, month, day, weekday, hour, minute, second, subseconds).

S jednim argumentom 8-člane torke postavlja RTC na tu vrijednost.

weekday je 1 = ponedjeljak do 7 = nedjelja na STM32, te 0 = ponedjeljak do 6 = nedjelja na mimxrt. subseconds je razlomljeni dio sekunde u jedinicama 1/256 sekunde na STM32; na mimxrt i alif uvijek je 0.

samo STM32 + mimxrt

init(datetime: tuple) None

Inicijalizira RTC.

Na mimxrt portu (OpenMV Cam RT1062) datetime je obavezan i koristi 8-članu torku (year, month, day, weekday, hour, minute, second, subseconds).

Na STM32 OpenMV kamerama init() ne prima argumente: ona (ponovno) pokreće periferiju RTC, ostavljajući trenutni datum / vrijeme netaknutim.

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

Dohvaća ili postavlja kalibracijski pomak RTC-a (koristi se za kompenzaciju pogreške frekvencije kristala).

Prihvaćeni raspon i jedinice value ovise o hardveru – vrijednost se izravno upisuje u RTC trim registar MCU-a. Točno kodiranje potražite u odgovarajućem STM32 / i.MX RT referentnom priručniku.

samo STM32

info() int

Vraća pakirani status pokretanja RTC-a kao 32-bitni cijeli broj.

Donjih 16 bitova daje broj milisekundi koliko je RTC-u trebalo za pokretanje pri posljednjem podizanju sustava. Bit 0x10000 je postavljen kada LSE (vanjski oscilator niske brzine) zakaže i RTC se vrati na LSI (interni RC). Bit 0x20000 je postavljen kada je RTC iznova inicijaliziran pri podizanju sustava (umjesto nastavka od prethodnog uključivanja napajanja).

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

Zakazuje periodički prekid buđenja.

timeout_ms je period u milisekundama. RTC okida svakih timeout_ms i može probuditi MCU iz machine.lightsleep() / machine.deepsleep(). Proslijedite None za onemogućavanje mjerača buđenja.

callback se poziva iz IRQ-a buđenja; proslijedite None za neinstaliranje povratnog poziva (buđenje će se i dalje okinuti i probuditi MCU).

samo mimxrt + alif

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

Aktivira alarm RTC-a. id odabire kanal alarma (koristite ALARM0). time je ili cijeli broj milisekundi u budućnosti ili torka datetime. Proslijedite repeat=True za automatsko ponovno aktiviranje nakon svakog okidanja (valjano samo kada je time broj milisekundi).

Na alif je podržan samo oblik s brojem milisekundi.

samo mimxrt

alarm_left(alarm_id: int = 0, /) int

Vraća broj milisekundi preostalih prije nego što se okine alarm identificiran s alarm_id.

alarm_cancel(alarm_id: int = 0, /) None

Otkazuje prethodno aktivirani alarm.

cancel(alarm_id: int = 0, /) None

Zastarjeli alias za alarm_cancel(), zadržan radi kompatibilnosti unatrag. Predviđen za uklanjanje u MicroPython 2.0.

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

Registrira povratni poziv za alarm RTC-a.

trigger mora biti ALARM0 – jedini podržani IRQ izvor. handler se poziva s instancom RTC kada se alarm okine. hard=True registrira rukovatelj hardverskog prekida (bez alokacije na hrpi u povratnom pozivu). wake se prihvaća radi kompatibilnosti među portovima, ali nema učinka.

Konstante

ALARM0: int

Identifikator jedinog kanala alarma RTC-a. Proslijedite u alarm(), alarm_left(), alarm_cancel() i argument trigger metode irq(). Samo mimxrt port.