class RTC – gerçek zamanlı saat

RTC sınıfı, sıfırlamalar arasında duvar saati zamanını koruyan MCU’nun yonga üzerindeki gerçek zamanlı saat çevre birimini denetler.

STM32 OpenMV Cam’lerde machine.RTC ve pyb.RTC aynı temel nesneye karşılık gelir.

Örnek kullanım:

import machine

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

Kurucular

class machine.RTC(id: int = 0)

RTC tekil nesnesini (singleton) döndürür. id portlar arası uyumluluk için kabul edilir, ancak OpenMV’nin desteklediği portlarda yalnızca 0 geçerlidir (her kameranın bir RTC’si vardır).

Aşağıdaki metotlar, onları hangi OpenMV portlarının açığa çıkardığına göre gruplanmıştır.

Tüm OpenMV portlarında bulunan metotlar

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

Geçerli tarih ve saati alın ya da ayarlayın.

Argüman verilmezse, geçerli değeri 8 öğeli bir demet (tuple) olarak döndürür: (year, month, day, weekday, hour, minute, second, subseconds).

Tek bir 8 öğeli demet argümanı ile RTC’yi o değere ayarlar.

weekday STM32 üzerinde 1 = Pazartesi’den 7 = Pazar’a, mimxrt üzerinde ise 0 = Pazartesi’den 6 = Pazar’adır. subseconds STM32 üzerinde saniyenin kesirli kısmıdır ve saniyenin 1/256’sı birimindedir; mimxrt ve alif üzerinde her zaman 0 değerindedir.

yalnızca STM32 + mimxrt

init(datetime: tuple) None

RTC’yi başlatır.

mimxrt portunda (OpenMV Cam RT1062) datetime gereklidir ve 8 öğeli demeti kullanır: (year, month, day, weekday, hour, minute, second, subseconds).

STM32 OpenMV cam’lerde init() argüman almaz: geçerli tarih / saate dokunmadan RTC çevre birimini (yeniden) başlatır.

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

RTC’nin kalibrasyon ofsetini alın ya da ayarlayın (kristal frekans hatasını telafi etmek için kullanılır).

Kabul edilen aralık ve value değerinin birimleri donanıma özgüdür – değer doğrudan MCU’nun RTC trim yazmacına yazılır. Tam kodlama için ilgili STM32 / i.MX RT referans kılavuzuna bakın.

yalnızca STM32

info() int

Paketlenmiş RTC başlangıç durumunu 32 bitlik bir tam sayı olarak döndürür.

Düşük 16 bit, RTC’nin en son önyüklemede başlaması için geçen milisaniye sayısını verir. 0x10000 biti, LSE (düşük hızlı harici) osilatör başarısız olduğunda ve RTC LSI’ya (dahili RC) geri döndüğünde ayarlanır. 0x20000 biti, RTC önyüklemede yeni başlatıldığında (önceki güç açılışından devam etmek yerine) ayarlanır.

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

Periyodik bir uyandırma kesmesi zamanlar.

timeout_ms milisaniye cinsinden periyottur. RTC her timeout_ms sürede tetiklenir ve MCU’yu machine.lightsleep() / machine.deepsleep() durumundan uyandırabilir. Uyandırma zamanlayıcısını devre dışı bırakmak için None geçirin.

callback uyandırma IRQ’sundan çağrılır; hiçbir geri çağırma kurmamak için None geçirin (uyandırma yine de tetiklenir ve MCU’yu uyandırır).

yalnızca mimxrt + alif

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

RTC alarmını kurar. id alarm kanalını seçer (ALARM0 kullanın). time ya gelecekte bir milisaniye tam sayısı ya da bir datetime demetidir. Her tetiklemeden sonra otomatik olarak yeniden kurmak için repeat=True geçirin (yalnızca time bir milisaniye sayısı olduğunda geçerlidir).

alif üzerinde yalnızca milisaniye-sayısı biçimi desteklenir.

yalnızca mimxrt

alarm_left(alarm_id: int = 0, /) int

alarm_id ile tanımlanan alarm tetiklenmeden önce kalan milisaniye sayısını döndürür.

alarm_cancel(alarm_id: int = 0, /) None

Önceden kurulmuş bir alarmı iptal eder.

cancel(alarm_id: int = 0, /) None

alarm_cancel() için kullanımdan kaldırılmış takma ad, geriye dönük uyumluluk için tutulur. MicroPython 2.0’da kaldırılması planlanmaktadır.

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

RTC alarmı için bir geri çağırma kaydeder.

trigger ALARM0 olmalıdır – desteklenen tek IRQ kaynağı. handler alarm tetiklendiğinde RTC örneği ile çağrılır. hard=True bir donanım kesmesi işleyicisi kaydeder (geri çağırmada öbek bellek ayırma yok). wake portlar arası uyumluluk için kabul edilir ancak hiçbir etkisi yoktur.

Sabitler

ALARM0: int

RTC’nin tek alarm kanalının tanımlayıcısı. alarm(), alarm_left(), alarm_cancel() metotlarına ve irq() trigger argümanına geçirin. Yalnızca mimxrt portu.