class RTC – Echtzeituhr

Die RTC ist eine unabhängige Uhr, die Datum und Uhrzeit verfolgt.

Anwendungsbeispiel:

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

Konstruktoren

class pyb.RTC

Erzeugt ein RTC-Objekt.

Methoden

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

Liest oder setzt Datum und Uhrzeit der RTC.

Ohne Argumente gibt diese Methode ein 8-Tupel mit dem aktuellen Datum und der aktuellen Uhrzeit zurück. Mit 1 Argument (einem 8-Tupel) setzt sie Datum und Uhrzeit (und subseconds wird auf 255 zurückgesetzt).

Das 8-Tupel hat das folgende Format:

(Jahr, Monat, Tag, Wochentag, Stunden, Minuten, Sekunden, Subsekunden)

weekday ist 1-7 für Montag bis Sonntag.

subseconds zählt von 255 auf 0 herunter.

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

Stellt den RTC-Aufwecktimer so ein, dass er wiederholt alle timeout Millisekunden ausgelöst wird. Dieser Auslöser kann das Board aus beiden Schlafzuständen aufwecken: pyb.stop() und pyb.standby().

Wenn timeout None ist, wird der Aufwecktimer deaktiviert.

Wenn callback angegeben ist, wird es bei jedem Auslösen des Aufwecktimers ausgeführt. callback muss genau ein Argument annehmen – die RTC-Instanz, die das Aufwecken ausgelöst hat.

info() int

Liefert Informationen über die Startzeit und die Reset-Quelle. Die zurückgegebene 32-Bit-Ganzzahl ist ein bitweise gepackter Wert:

Bits

Bedeutung

0x0000FFFF

Anzahl der Millisekunden, die die RTC zum Starten benötigt hat.

0x00010000

Gesetzt, wenn ein Power-on-Reset aufgetreten ist.

0x00020000

Gesetzt, wenn ein externer Reset aufgetreten ist.

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

Liest oder setzt den Smooth-Calibration-Wert der RTC.

Ohne Argumente gibt calibration() den aktuellen Kalibrierungswert zurück, eine Ganzzahl im Bereich [-511, 512]. Mit einem Argument wird die Kalibrierung gesetzt.

Der Smooth-Calibration-Mechanismus passt die Taktrate der RTC an, indem er über einen Zeitraum von 32 Sekunden (2^20 Takte) die angegebene Anzahl von Ticks zum 32768-Hz-Takt addiert oder von ihm subtrahiert. Jeder positive Tick beschleunigt die Uhr um 1 Teil in 2^20 (≈0,954 ppm); negative Werte verlangsamen die Uhr pro Tick um denselben Betrag. Der nutzbare Kalibrierungsbereich liegt daher ungefähr zwischen -487.5 ppm und +488.5 ppm.