class RTC – reaaliaikakello

RTC -luokka ohjaa MCU:n sirulla olevaa reaaliaikakello-oheislaitetta, joka pitää yllä seinäkelloaikaa nollausten yli.

STM32-pohjaisissa OpenMV Cam -kameroissa machine.RTC ja pyb.RTC viittaavat samaan taustalla olevaan olioon.

Esimerkkikäyttö:

import machine

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

Muodostimet

class machine.RTC(id: int = 0)

Palauta RTC -singleton. id hyväksytään porttien välisen yhteensopivuuden vuoksi, mutta vain 0 on kelvollinen OpenMV:n tukemissa porteissa (kullakin kameralla on yksi RTC).

Alla olevat metodit on ryhmitelty sen mukaan, mitkä OpenMV-portit tarjoavat ne.

Kaikissa OpenMV-porteissa saatavilla olevat metodit

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

Hae tai aseta nykyinen päivämäärä ja kellonaika.

Ilman argumenttia palauttaa nykyisen arvon 8-monikkona (year, month, day, weekday, hour, minute, second, subseconds).

Yhdellä 8-monikkoargumentilla asettaa RTC:n kyseiseen arvoon.

weekday on 1 = maanantai - 7 = sunnuntai STM32:lla ja 0 = maanantai - 6 = sunnuntai mimxrt:llä. subseconds on sekunnin murto-osa yksikkönä 1/256 sekuntia STM32:lla; mimxrt:llä ja alifilla se on aina 0.

vain STM32 + mimxrt

init(datetime: tuple) None

Alusta RTC.

mimxrt-portissa (OpenMV Cam RT1062) datetime on pakollinen ja käyttää 8-monikkoa (year, month, day, weekday, hour, minute, second, subseconds).

STM32-pohjaisissa OpenMV-kameroissa init() ei ota argumenttia: se (uudelleen)käynnistää RTC-oheislaitteen jättäen nykyisen päivämäärän / kellonajan koskemattomaksi.

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

Hae tai aseta RTC:n kalibrointipoikkeama (käytetään kompensoimaan kiteen taajuusvirhettä).

value -arvon sallittu alue ja yksiköt ovat laitteistokohtaisia – arvo kirjoitetaan suoraan MCU:n RTC-trimmausrekisteriin. Katso tarkka koodaus asianomaisesta STM32 / i.MX RT -referenssikäsikirjasta.

vain STM32

info() int

Palauta pakattu RTC:n käynnistystila 32-bittisenä kokonaislukuna.

Alimmat 16 bittiä ilmoittavat millisekuntien määrän, jonka RTC:n käynnistyminen kesti viimeisimmässä käynnistyksessä. Bitti 0x10000 on asetettu, kun LSE (low-speed external) -oskillaattori epäonnistui ja RTC siirtyi takaisin LSI:hin (sisäinen RC). Bitti 0x20000 on asetettu, kun RTC alustettiin uudelleen käynnistyksessä (eikä jatkanut edellisestä virrankytkennästä).

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

Ajoita jaksottainen herätyskeskeytys.

timeout_ms on jakso millisekunteina. RTC laukeaa joka timeout_ms ja voi herättää MCU:n tiloista machine.lightsleep() / machine.deepsleep(). Anna None poistaaksesi herätysajastimen käytöstä.

callback kutsutaan herätyskeskeytyksestä; anna None, jos et halua asentaa takaisinkutsua (herätys laukeaa silti ja herättää MCU:n).

vain mimxrt + alif

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

Viritä RTC-hälytys. id valitsee hälytyskanavan (käytä ALARM0). time on joko kokonaisluku tulevista millisekunneista tai datetime-monikko. Anna repeat=True virittääksesi hälytyksen automaattisesti uudelleen jokaisen laukeamisen jälkeen (kelvollinen vain, kun time on millisekuntimäärä).

Alifilla tuetaan vain millisekuntimäärämuotoa.

vain mimxrt

alarm_left(alarm_id: int = 0, /) int

Palauta millisekuntien määrä, joka on jäljellä ennen kuin alarm_id -tunnisteella yksilöity hälytys laukeaa.

alarm_cancel(alarm_id: int = 0, /) None

Peruuta aiemmin viritetty hälytys.

cancel(alarm_id: int = 0, /) None

Vanhentunut alias metodille alarm_cancel(), säilytetty taaksepäin yhteensopivuuden vuoksi. Aikataulutettu poistettavaksi MicroPython 2.0:ssa.

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

Rekisteröi takaisinkutsu RTC-hälytykselle.

trigger on oltava ALARM0 – ainoa tuettu keskeytyslähde. handler kutsutaan RTC -instanssin kanssa, kun hälytys laukeaa. hard=True rekisteröi laitteistokeskeytyskäsittelijän (ei keko-varausta takaisinkutsussa). wake hyväksytään porttien välisen yhteensopivuuden vuoksi, mutta sillä ei ole vaikutusta.

Vakiot

ALARM0: int

RTC:n yksittäisen hälytyskanavan tunniste. Anna metodeille alarm(), alarm_left(), alarm_cancel() ja irq() -metodin trigger -argumentille. Vain mimxrt-portti.