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.idse prihvaća radi kompatibilnosti među portovima, ali je samo0valjan 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.
weekdayje 1 = ponedjeljak do 7 = nedjelja na STM32, te 0 = ponedjeljak do 6 = nedjelja na mimxrt.subsecondsje razlomljeni dio sekunde u jedinicama 1/256 sekunde na STM32; na mimxrt i alif uvijek je0.
samo STM32 + mimxrt¶
- init(datetime: tuple) None¶
Inicijalizira RTC.
Na mimxrt portu (OpenMV Cam RT1062)
datetimeje 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
valueovise 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_msje period u milisekundama. RTC okida svakihtimeout_msi može probuditi MCU izmachine.lightsleep()/machine.deepsleep(). ProslijediteNoneza onemogućavanje mjerača buđenja.callbackse poziva iz IRQ-a buđenja; proslijediteNoneza 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.
idodabire kanal alarma (koristiteALARM0).timeje ili cijeli broj milisekundi u budućnosti ili torka datetime. Proslijediterepeat=Trueza automatsko ponovno aktiviranje nakon svakog okidanja (valjano samo kada jetimebroj 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.
- 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.
triggermora bitiALARM0– jedini podržani IRQ izvor.handlerse poziva s instancomRTCkada se alarm okine.hard=Trueregistrira rukovatelj hardverskog prekida (bez alokacije na hrpi u povratnom pozivu).wakese 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 argumenttriggermetodeirq(). Samo mimxrt port.