clasa RTC – ceas în timp real

RTC este un ceas independent care ține evidența datei și a orei.

Exemplu de utilizare:

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

Constructori

class pyb.RTC

Creează un obiect RTC.

Metode

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

Obține sau setează data și ora RTC-ului.

Fără argumente, această metodă returnează un tuplu cu 8 elemente conținând data și ora curente. Cu 1 argument (fiind un tuplu cu 8 elemente) setează data și ora (iar subseconds este resetat la 255).

Tuplul cu 8 elemente are următorul format:

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

weekday este de la 1 la 7, de luni până duminică.

subseconds numără invers de la 255 la 0.

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

Setează temporizatorul de trezire al RTC-ului să se declanșeze repetat la fiecare timeout milisecunde. Acest declanșator poate trezi placa din ambele stări de repaus: pyb.stop() și pyb.standby().

Dacă timeout este None, atunci temporizatorul de trezire este dezactivat.

Dacă este furnizat callback, atunci acesta este executat la fiecare declanșare a temporizatorului de trezire. callback trebuie să accepte exact un argument – instanța RTC care a declanșat trezirea.

info() int

Obține informații despre timpul de pornire și sursa de resetare. Numărul întreg pe 32 de biți returnat este o valoare împachetată pe biți:

Biți

Semnificație

0x0000FFFF

Numărul de milisecunde de care a avut nevoie RTC-ul pentru a porni.

0x00010000

Setat dacă a avut loc o resetare la pornirea alimentării.

0x00020000

Setat dacă a avut loc o resetare externă.

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

Obține sau setează valoarea de calibrare fină (smooth-calibration) a RTC-ului.

Fără argumente, calibration() returnează valoarea de calibrare curentă, un număr întreg în intervalul [-511, 512]. Cu un argument, setează calibrarea.

Mecanismul de calibrare fină ajustează rata ceasului RTC adăugând sau scăzând numărul dat de tacturi din ceasul de 32768 Hz pe o perioadă de 32 de secunde (2^20 de tacturi de ceas). Fiecare tact pozitiv accelerează ceasul cu 1 parte din 2^20 (≈0,954 ppm); valorile negative încetinesc ceasul cu aceeași cantitate per tact. Intervalul de calibrare utilizabil este, prin urmare, de aproximativ -487.5 ppm până la +488.5 ppm.