klasa RTC – zegar czasu rzeczywistego

RTC to niezależny zegar, który śledzi datę i czas.

Przykład użycia:

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

Konstruktory

class pyb.RTC

Tworzy obiekt RTC.

Metody

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

Pobiera lub ustawia datę i czas RTC.

Bez argumentów metoda ta zwraca 8-elementową krotkę z bieżącą datą i czasem. Z 1 argumentem (będącym 8-elementową krotką) ustawia datę i czas (a subseconds jest resetowane do 255).

8-elementowa krotka ma następujący format:

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

weekday przyjmuje wartości 1-7 dla poniedziałku do niedzieli.

subseconds odlicza w dół od 255 do 0.

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

Ustawia licznik czasu wybudzania RTC, aby wyzwalał się cyklicznie co timeout milisekund. To wyzwolenie może wybudzić płytkę z obu stanów uśpienia: pyb.stop() i pyb.standby().

Jeśli timeout ma wartość None, licznik czasu wybudzania jest wyłączony.

Jeśli podano callback, jest ono wykonywane przy każdym wyzwoleniu licznika czasu wybudzania. callback musi przyjmować dokładnie jeden argument – instancję RTC, która wyzwoliła wybudzenie.

info() int

Pobiera informacje o czasie rozruchu i źródle resetu. Zwrócona 32-bitowa liczba całkowita jest wartością upakowaną bitowo:

Bity

Znaczenie

0x0000FFFF

Liczba milisekund, jaką RTC potrzebował na uruchomienie.

0x00010000

Ustawione, jeśli wystąpił reset po włączeniu zasilania.

0x00020000

Ustawione, jeśli wystąpił reset zewnętrzny.

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

Pobiera lub ustawia wartość gładkiej kalibracji RTC.

Bez argumentów calibration() zwraca bieżącą wartość kalibracji, liczbę całkowitą z zakresu [-511, 512]. Z jednym argumentem ustawia kalibrację.

Mechanizm gładkiej kalibracji dostosowuje częstotliwość zegara RTC, dodając lub odejmując podaną liczbę taktów z zegara 32768 Hz w okresie 32 sekund (2^20 taktów zegara). Każdy dodatni takt przyspiesza zegar o 1 część na 2^20 (≈0,954 ppm); wartości ujemne spowalniają zegar o tę samą wartość na takt. Użyteczny zakres kalibracji wynosi zatem w przybliżeniu od -487.5 ppm do +488.5 ppm.