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-tuple พร้อมวันที่และเวลาปัจจุบัน เมื่อมีอาร์กิวเมนต์ 1 ตัว (เป็น 8-tuple) จะตั้งค่าวันที่และเวลา (และ subseconds จะถูกรีเซ็ตเป็น 255)

8-tuple มีรูปแบบดังต่อไปนี้:

(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()

หาก timeout เป็น None ตัวจับเวลาปลุกจะถูกปิดใช้งาน

หาก callback ถูกกำหนด จะถูกเรียกใช้งานทุกทริกเกอร์ของตัวจับเวลาปลุก callback ต้องรับอาร์กิวเมนต์หนึ่งตัวพอดี -- อินสแตนซ์ RTC ที่เริ่มการปลุก

info() int

รับข้อมูลเกี่ยวกับเวลาเริ่มต้นและแหล่งที่มาของการรีเซ็ต จำนวนเต็ม 32 บิตที่คืนค่าเป็นค่าที่บรรจุแบบบิต:

บิต

ความหมาย

0x0000FFFF

จำนวนมิลลิวินาทีที่ RTC ใช้ในการเริ่มต้น

0x00010000

ตั้งค่าหากเกิดการรีเซ็ตเมื่อเปิดเครื่อง

0x00020000

ตั้งค่าหากเกิดการรีเซ็ตภายนอก

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

รับหรือตั้งค่าการปรับเทียบ RTC แบบราบเรียบ

เมื่อไม่มีอาร์กิวเมนต์ calibration() คืนค่าการปรับเทียบปัจจุบัน เป็นจำนวนเต็มในช่วง [-511, 512] เมื่อมีอาร์กิวเมนต์หนึ่งตัว จะตั้งค่าการปรับเทียบ

กลไกการปรับเทียบแบบราบเรียบจะปรับอัตรานาฬิกา RTC โดยการเพิ่มหรือลบจำนวน ticks ที่กำหนดจากนาฬิกา 32768 Hz ในช่วง 32 วินาที (2^20 clock ticks) แต่ละ tick บวกจะเพิ่มความเร็วนาฬิกาขึ้น 1 ส่วนใน 2^20 (≈0.954 ppm); ค่าลบจะลดความเร็วนาฬิกาในจำนวนเดียวกันต่อ tick ช่วงการปรับเทียบที่ใช้ได้จึงอยู่ที่ประมาณ -487.5 ppm ถึง +488.5 ppm