класс 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-элементный кортеж с текущей датой и временем. С 1 аргументом (8-элементным кортежем) он задаёт дату и время (а subseconds сбрасывается в 255).

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

Установлен, если произошёл сброс по включению питания.

0x00020000

Установлен, если произошёл внешний сброс.

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

Получает или задаёт значение плавной калибровки RTC.

Без аргументов calibration() возвращает текущее значение калибровки — целое число в диапазоне [-511, 512]. С одним аргументом он задаёт калибровку.

Механизм плавной калибровки регулирует частоту тактового сигнала RTC, добавляя или вычитая заданное количество тактов из тактового сигнала 32768 Гц за период в 32 секунды (2^20 тактов). Каждый положительный такт ускоряет часы на 1 часть из 2^20 (≈0,954 ppm); отрицательные значения замедляют часы на ту же величину за такт. Поэтому используемый диапазон калибровки составляет приблизительно от -487.5 ppm до +488.5 ppm.