MicroPython:Библиотеки/pyb/Класс RTC: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =<ref>[]</ref>= <syntaxhighlight lang="python"...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 3: | Строка 3: | ||
{{Myagkij-редактор}} | {{Myagkij-редактор}} | ||
=<ref>[]</ref>= | =Класс RTC – часы реального времени<ref>[http://docs.micropython.org/en/latest/library/pyb.RTC.html ]</ref>= | ||
RTC-часы (от англ. ''«real time clock»'', т.е. ''«часы реального времени»'') – это автономные часы, отслеживающие дату и время. | |||
Пример использования: | |||
<syntaxhighlight lang="python" enclose="div"> | |||
rtc = pyb.RTC() | |||
rtc.datetime((2014, 5, 1, 4, 13, 0, 0, 0)) | |||
print(rtc.datetime()) | |||
</syntaxhighlight> | |||
==Конструкторы== | |||
* [[MicroPython:Библиотеки/pyb/Класс RTC/pyb.RTC()|pyb.RTC()]] | |||
• Класс pyb.RTC – создает объект RTC. | |||
==Методы== | |||
• RTC.datetime([datetimetuple]) – задает или считывает дату и время RTC-часов. | |||
Если не задавать в этом методе никаких аргументов, он вернет 8-элементный кортеж с текущими датой и временем. Если задать в нем один аргумент (тоже 8-элементный кортеж), он задаст дату и время (а элемент subseconds будет сброшен до «255»). | |||
У этого 8-элементного кортежа следующий формат: | |||
(year, month, day, weekday, hours, minutes, seconds, subseconds) | |||
В элементе weekday – значения с «1» до «7» (понедельник-суббота). | |||
В элементе subseconds ведется отсчет с «255» до «0». | |||
• RTC.wakeup(timeout, callback=None) – настраивает пробуждающий RTC-таймер, который будет срабатывать каждые timeout миллисекунд. Эта срабатывание будет пробуждать PyBoard из обоих режимов сна: pyb.stop() и pyb.standby(). | |||
Если в timeout задать None, то пробуждающий таймер будет отключен. | |||
В аргументе callback задается функция обратного вызова, которая будет запускаться при каждом срабатывании таймера. У этой функции должен быть только один аргумент. | |||
• RTC.info() – считывает информацию о времени запуска и источнике сброса. | |||
o Значение ниже «0xffff» – это количество миллисекунд, в течение которых выполняется запуск RTC-часов. | |||
o Если в бите «0x10000» задана единица, то это значит, что причина сброса – это включение платы. | |||
o Если в бите «0x20000» задана единица, то это значит, что произошел внешний сброс платы. | |||
• RTC.calibration(cal) – задает или считывает RTC-калибровочное значение. | |||
Без аргументов этот метод вернет текущее калибровочное значение (целое число в диапазоне между «-511» и «512»). Если задать в нем аргумент cal, он задаст калибровочное значение. | |||
Механизм плавной RTC-калибровки (RTC Smooth Calibration) настраивает тактовую частоту RTC-часов, добавляя или убавляя заданное количество тактов из частоты 32768 Гц в течение 32-секундного периода (это соответствует 220 тактам). Положительные значения увеличивают частоту, а отрицательные – уменьшают. Одна единица – это 0.954 ppm. Таким образом, диапазон калибровочных значений варьируется от (-511 * 0.954) ~= -487.5 ppm до (512 * 0.954) ~= 488.5 ppm. | |||
Версия от 12:03, 11 октября 2020
Класс RTC – часы реального времени[1]
RTC-часы (от англ. «real time clock», т.е. «часы реального времени») – это автономные часы, отслеживающие дату и время.
Пример использования:
rtc = pyb.RTC()
rtc.datetime((2014, 5, 1, 4, 13, 0, 0, 0))
print(rtc.datetime())
Конструкторы
• Класс pyb.RTC – создает объект RTC.
Методы
• RTC.datetime([datetimetuple]) – задает или считывает дату и время RTC-часов. Если не задавать в этом методе никаких аргументов, он вернет 8-элементный кортеж с текущими датой и временем. Если задать в нем один аргумент (тоже 8-элементный кортеж), он задаст дату и время (а элемент subseconds будет сброшен до «255»). У этого 8-элементного кортежа следующий формат: (year, month, day, weekday, hours, minutes, seconds, subseconds) В элементе weekday – значения с «1» до «7» (понедельник-суббота). В элементе subseconds ведется отсчет с «255» до «0». • RTC.wakeup(timeout, callback=None) – настраивает пробуждающий RTC-таймер, который будет срабатывать каждые timeout миллисекунд. Эта срабатывание будет пробуждать PyBoard из обоих режимов сна: pyb.stop() и pyb.standby(). Если в timeout задать None, то пробуждающий таймер будет отключен. В аргументе callback задается функция обратного вызова, которая будет запускаться при каждом срабатывании таймера. У этой функции должен быть только один аргумент. • RTC.info() – считывает информацию о времени запуска и источнике сброса. o Значение ниже «0xffff» – это количество миллисекунд, в течение которых выполняется запуск RTC-часов. o Если в бите «0x10000» задана единица, то это значит, что причина сброса – это включение платы. o Если в бите «0x20000» задана единица, то это значит, что произошел внешний сброс платы. • RTC.calibration(cal) – задает или считывает RTC-калибровочное значение. Без аргументов этот метод вернет текущее калибровочное значение (целое число в диапазоне между «-511» и «512»). Если задать в нем аргумент cal, он задаст калибровочное значение. Механизм плавной RTC-калибровки (RTC Smooth Calibration) настраивает тактовую частоту RTC-часов, добавляя или убавляя заданное количество тактов из частоты 32768 Гц в течение 32-секундного периода (это соответствует 220 тактам). Положительные значения увеличивают частоту, а отрицательные – уменьшают. Одна единица – это 0.954 ppm. Таким образом, диапазон калибровочных значений варьируется от (-511 * 0.954) ~= -487.5 ppm до (512 * 0.954) ~= 488.5 ppm.
<syntaxhighlight lang="python" enclose="div">