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)¶
RTCtekil nesnesini (singleton) döndürür.idportlar arası uyumluluk için kabul edilir, ancak OpenMV’nin desteklediği portlarda yalnızca0geç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.
weekdaySTM32 üzerinde 1 = Pazartesi’den 7 = Pazar’a, mimxrt üzerinde ise 0 = Pazartesi’den 6 = Pazar’adır.subsecondsSTM32 üzerinde saniyenin kesirli kısmıdır ve saniyenin 1/256’sı birimindedir; mimxrt ve alif üzerinde her zaman0değerindedir.
yalnızca STM32 + mimxrt¶
- init(datetime: tuple) None¶
RTC’yi başlatır.
mimxrt portunda (OpenMV Cam RT1062)
datetimegereklidir 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
valuedeğ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_msmilisaniye cinsinden periyottur. RTC hertimeout_mssürede tetiklenir ve MCU’yumachine.lightsleep()/machine.deepsleep()durumundan uyandırabilir. Uyandırma zamanlayıcısını devre dışı bırakmak içinNonegeçirin.callbackuyandırma IRQ’sundan çağrılır; hiçbir geri çağırma kurmamak içinNonegeç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.
idalarm kanalını seçer (ALARM0kullanın).timeya gelecekte bir milisaniye tam sayısı ya da bir datetime demetidir. Her tetiklemeden sonra otomatik olarak yeniden kurmak içinrepeat=Truegeçirin (yalnızcatimebir 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_idile tanımlanan alarm tetiklenmeden önce kalan milisaniye sayısını döndürür.
- 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.
triggerALARM0olmalıdır – desteklenen tek IRQ kaynağı.handleralarm tetiklendiğindeRTCörneği ile çağrılır.hard=Truebir donanım kesmesi işleyicisi kaydeder (geri çağırmada öbek bellek ayırma yok).wakeportlar 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 veirq()triggerargümanına geçirin. Yalnızca mimxrt portu.