MicroPython:Библиотеки/machine/Класс Timer: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
(Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} <syntaxhighlight lang="python" enclose="div"> =...»)
 
Нет описания правки
Строка 3: Строка 3:
{{Myagkij-редактор}}
{{Myagkij-редактор}}


=Класс Timer – управление аппаратными таймерами<ref>[http://docs.micropython.org/en/latest/library/machine.Timer.html docs.micropython.org - class Timer – control hardware timers]</ref>=


Аппаратные таймеры предназначены для работы с периодами и событиями. Таймеры – это, возможно, самые гибкие и разнообразные компоненты микроконтроллеров и SoC-систем; они очень сильно варьируются от одной модели к другой. В классе Timer в MicroPython задана базовая операция выполнения функции обратного вызова с заданной периодичностью (или единожды после некоторой задержки), но на некоторых платах с его помощью можно задать и более нестандартное поведение (и тогда код невозможно будет портировать на другие платы).
О важных ограничениях при использовании функций обратного вызова в классе Timer читайте [http://docs.micropython.org/en/latest/library/machine.html#machine-callbacks тут].
Примечание: Внутри обработчиков запросов на прерывание (прерываний) память выделять нельзя, и поэтому исключения, возбуждаемые обработчиком, дают мало полезной информации. О том, как обойти это ограничение, читайте [http://docs.micropython.org/en/latest/library/micropython.html#micropython.alloc_emergency_exception_buf тут].
Если вы используете плату WiPy, то вместо этого класса вам понадобится [http://docs.micropython.org/en/latest/library/machine.TimerWiPy.html#machine-timerwipy machine.TimerWiPy].
==Конструкторы==
* [[MicroPython:Библиотеки/machine/Класс Timer/machine.Timer()|machine.Timer()]]
* Класс machine.Timer(id, ...) – конструирует новый объект Timer с заданным идентификатором id. Если задать в id значение «-1», это сконструирует виртуальный таймер (если это поддерживается платой).
==Методы==
* [[MicroPython:Библиотеки/machine/Класс Timer/Timer.init()|Timer.init()]]
* [[MicroPython:Библиотеки/machine/Класс Timer/Timer.deinit()|Timer.deinit()]]
* Timer.init(*, mode=Timer.PERIODIC, period=- 1, callback=None) – инициализирует таймер. Пример:
tim.init(period=100)                        # периодичность в
                                            # 100 миллисекунд
tim.init(mode=Timer.ONE_SHOT, period=1000)  # один запуск через
                                            # 100 миллисекунд
Именованные аргументы:
o В аргументе mode может быть одно из следующих значений:
 Timer.ONE_SHOT – таймер сработает один раз после истечения времени, заданного в аргументе period.
 Timer.PERIODIC – таймер будет срабатывать с заданной периодичностью.
* Timer.deinit() – деинициализирует таймер. То есть останавливает таймер и выключает таймерный компонент.
==Константы==
* [[MicroPython:Библиотеки/machine/Класс Timer/Timer.ONE_SHOT|Timer.ONE_SHOT]]
* [[MicroPython:Библиотеки/machine/Класс Timer/Timer.PERIODIC|Timer.PERIODIC]]
* Timer.ONE_SHOT и Timer.PERIODIC – режимы работы таймера.


<syntaxhighlight lang="python" enclose="div">
<syntaxhighlight lang="python" enclose="div">

Версия от 10:27, 20 сентября 2020

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Класс Timer – управление аппаратными таймерами[1]

Аппаратные таймеры предназначены для работы с периодами и событиями. Таймеры – это, возможно, самые гибкие и разнообразные компоненты микроконтроллеров и SoC-систем; они очень сильно варьируются от одной модели к другой. В классе Timer в MicroPython задана базовая операция выполнения функции обратного вызова с заданной периодичностью (или единожды после некоторой задержки), но на некоторых платах с его помощью можно задать и более нестандартное поведение (и тогда код невозможно будет портировать на другие платы).

О важных ограничениях при использовании функций обратного вызова в классе Timer читайте тут.

Примечание: Внутри обработчиков запросов на прерывание (прерываний) память выделять нельзя, и поэтому исключения, возбуждаемые обработчиком, дают мало полезной информации. О том, как обойти это ограничение, читайте тут.

Если вы используете плату WiPy, то вместо этого класса вам понадобится machine.TimerWiPy.

Конструкторы

  • Класс machine.Timer(id, ...) – конструирует новый объект Timer с заданным идентификатором id. Если задать в id значение «-1», это сконструирует виртуальный таймер (если это поддерживается платой).

Методы

  • Timer.init(*, mode=Timer.PERIODIC, period=- 1, callback=None) – инициализирует таймер. Пример:

tim.init(period=100) # периодичность в

                                            # 100 миллисекунд 

tim.init(mode=Timer.ONE_SHOT, period=1000) # один запуск через

                                            # 100 миллисекунд

Именованные аргументы: o В аргументе mode может быть одно из следующих значений:  Timer.ONE_SHOT – таймер сработает один раз после истечения времени, заданного в аргументе period.  Timer.PERIODIC – таймер будет срабатывать с заданной периодичностью.

  • Timer.deinit() – деинициализирует таймер. То есть останавливает таймер и выключает таймерный компонент.

Константы

  • Timer.ONE_SHOT и Timer.PERIODIC – режимы работы таймера.

<syntaxhighlight lang="python" enclose="div">

См.также

Внешние ссылки