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.

ללא ארגומנטים, מתודה זו מחזירה tuple בן 8 איברים עם התאריך והשעה הנוכחיים. עם ארגומנט אחד (שהוא tuple בן 8 איברים) היא מגדירה את התאריך והשעה (ו-subseconds מאופס ל-255).

ה-tuple בן 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().

אם timeout הוא None אז טיימר ההתעוררות מושבת.

אם ניתן callback אז הוא מבוצע בכל הפעלה של טיימר ההתעוררות. callback חייב לקבל ארגומנט אחד בדיוק – מופע ה-RTC שהפעיל את ההתעוררות.

info() int

מקבל מידע על זמן ההפעלה ומקור האיפוס. המספר השלם בן 32 הסיביות המוחזר הוא ערך ארוז בסיביות:

סיביות

משמעות

0x0000FFFF

מספר המילישניות שלקח ל-RTC להתחיל לפעול.

0x00010000

מוגדר אם התרחש איפוס עקב הפעלת מתח (power-on reset).

0x00020000

מוגדר אם התרחש איפוס חיצוני.

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

מקבל או מגדיר את ערך הכיול החלק (smooth-calibration) של ה-RTC.

ללא ארגומנטים, calibration() מחזיר את ערך הכיול הנוכחי, מספר שלם בטווח [-511, 512]. עם ארגומנט אחד הוא מגדיר את הכיול.

מנגנון הכיול החלק מתאים את קצב שעון ה-RTC על ידי הוספה או חיסור של מספר הטיקים הנתון משעון ה-32768 Hz לאורך תקופה של 32 שניות (2^20 טיקי שעון). כל טיק חיובי מאיץ את השעון ב-1 חלקי 2^20 (≈0.954 ppm); ערכים שליליים מאטים את השעון באותו שיעור לכל טיק. טווח הכיול השמיש הוא אפוא בקירוב -487.5 ppm עד +488.5 ppm.