class RTC -- 即時時鐘

RTC 是一個獨立的時鐘,用來追蹤日期與時間。

使用範例:

rtc = pyb.RTC()
rtc.datetime((2014, 5, 1, 4, 13, 0, 0, 0))
print(rtc.datetime())

建構子

class pyb.RTC

建立一個 RTC 物件。

方法

datetime(datetimetuple: Tuple[int, int, int, int, int, int, int, int] | None = None) Tuple[int, int, int, int, int, int, int, int] | None

取得或設定 RTC 的日期與時間。

不帶引數時,此方法回傳一個包含目前日期與時間的 8 元組。帶 1 個引數(即一個 8 元組)時,它會設定日期與時間(且 subseconds 會重設為 255)。

這個 8 元組的格式如下:

(year, month, day, weekday, hours, minutes, seconds, subseconds)

weekday 為 1-7,分別對應週一到週日。

subseconds 從 255 倒數到 0。

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

設定 RTC 喚醒計時器,使其每隔 timeout 毫秒重複觸發。此觸發可從兩種睡眠狀態喚醒開發板:pyb.stop()pyb.standby()

如果 timeoutNone,則喚醒計時器會被停用。

如果提供了 callback,則它會在喚醒計時器每次觸發時執行。callback 必須剛好接受一個引數 —— 觸發喚醒的 RTC 實例。

info() int

取得有關啟動時間與重置來源的資訊。回傳的 32 位元整數是一個位元封裝值:

位元

意義

0x0000FFFF

RTC 啟動所花費的毫秒數。

0x00010000

若發生電源開啟重置則被設定。

0x00020000

若發生外部重置則被設定。

calibration(cal: int | None = None) int | None

取得或設定 RTC 平滑校正值。

不帶引數時,calibration() 回傳目前的校正值,為範圍 [-511, 512] 內的整數。帶一個引數時,它會設定校正值。

平滑校正機制會在 32 秒週期(2^20 個時鐘脈衝)內,從 32768 Hz 時鐘加上或減去給定數量的脈衝,藉此調整 RTC 時鐘速率。每個正向脈衝會使時鐘加快 2^20 分之一(≈0.954 ppm);負值則以每個脈衝相同的量減慢時鐘。因此可用的校正範圍約為 -487.5 ppm+488.5 ppm