class RTC -- リアルタイムクロック¶
RTC クラスは、MCUのオンチップのリアルタイムクロックペリフェラルを制御します。これはリセットをまたいで実時刻を保持します。
STM32のOpenMV Camでは、machine.RTC と pyb.RTC は同じ基盤オブジェクトを参照します。
使用例:
import machine
rtc = machine.RTC()
rtc.datetime((2026, 1, 21, 2, 10, 32, 36, 0))
print(rtc.datetime())
コンストラクタ¶
- class machine.RTC(id: int = 0)¶
RTCシングルトンを返します。idはクロスポート互換性のために受け付けられますが、OpenMVが対応するポートでは0のみが有効です(各カメラには1つのRTCがあります)。以下のメソッドは、どのOpenMVポートが公開しているかによってグループ化されています。
すべてのOpenMVポートで利用可能なメソッド¶
- datetime(datetimetuple: tuple | None = None, /) tuple | None¶
現在の日付と時刻を取得または設定します。
引数なしの場合、現在の値を8要素のタプル
(year, month, day, weekday, hour, minute, second, subseconds)として返します。8要素のタプルを1つの引数として指定すると、RTCをその値に設定します。
weekdayはSTM32では1 = 月曜日から7 = 日曜日まで、mimxrtでは0 = 月曜日から6 = 日曜日までです。subsecondsはSTM32では1秒の小数部分で、単位は1/256秒です。mimxrtおよびalifでは常に0です。
STM32 + mimxrt のみ¶
STM32 のみ¶
- info() int¶
パックされたRTC起動ステータスを32ビット整数として返します。
下位16ビットは、直近のブート時にRTCの起動にかかったミリ秒数を示します。ビット0x10000は、LSE(低速外部)発振器が故障し、RTCがLSI(内部RC)にフォールバックしたときに設定されます。ビット0x20000は、(前回の電源投入から継続するのではなく)ブート時にRTCが新たに初期化されたときに設定されます。
- wakeup(timeout_ms: int | None, callback: Callable[[RTC], None] | None = None, /) None¶
定期的なウェイクアップ割り込みをスケジュールします。
timeout_msはミリ秒単位の周期です。RTCはtimeout_msごとに発火し、machine.lightsleep()/machine.deepsleep()からMCUを起こすことができます。ウェイクアップタイマーを無効にするにはNoneを渡します。callbackはウェイクアップIRQから呼び出されます。コールバックをインストールしない場合はNoneを渡します(ウェイクアップは引き続き発火し、MCUを起こします)。
mimxrt + alif のみ¶
mimxrt のみ¶
- cancel(alarm_id: int = 0, /) None¶
alarm_cancel()の非推奨のエイリアスで、後方互換性のために残されています。MicroPython 2.0での削除が予定されています。
- irq(*, trigger: int = ALARM0, handler: Callable[[RTC], None] | None = None, wake: int = 0, hard: bool = False) None¶
RTCアラームのコールバックを登録します。
triggerはALARM0でなければなりません。これが対応している唯一のIRQソースです。handlerはアラームが発火したときにRTCインスタンスを引数として呼び出されます。hard=Trueはハード割り込みハンドラを登録します(コールバック内でのヒープ割り当てなし)。wakeはクロスポート互換性のために受け付けられますが、効果はありません。
定数¶
- ALARM0: int¶
RTCの単一アラームチャンネルの識別子。
alarm()、alarm_left()、alarm_cancel()、およびirq()のtrigger引数に渡します。mimxrtポートのみ。