MicroPython:Библиотеки/machine/Класс Timer: различия между версиями
Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} <syntaxhighlight lang="python" enclose="div"> =...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 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">