MicroPython:Библиотеки/machine.TimerWiPy: различия между версиями
Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) |
||
Строка 27: | Строка 27: | ||
* [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.ONE_SHOT|TimerWiPy.ONE_SHOT]] | * [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.ONE_SHOT|TimerWiPy.ONE_SHOT]] | ||
* [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.PERIODIC|TimerWiPy.PERIODIC]] | * [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.PERIODIC|TimerWiPy.PERIODIC]] | ||
=См.также= | =См.также= |
Версия от 14:46, 20 октября 2020
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Класс TimerWiPy – управление аппаратными таймерами[1]
Примечание: Этот класс – это нестандартная реализация класса Timer для WiPy. На WiPy он именуется machine.Timer, но в документации ниже он именуется machine.TimerWiPy, чтобы отличить его от более общего класса machine.Timer. |
Аппаратные таймеры нужны для работы с периодами и событиями. Таймеры – это, возможно, самый универсальный и неоднородный тип оборудования в микроконтроллерах и SoC-системах. Таймеры, установленные в разные модели, могут очень сильно отличаться друг от друга. В MicroPython’овском классе Timer определена базовая операция периодического запуска функции обратного вызова через заданное время (или один раз после задержки). Но в то же время этот класс позволяет задавать более нестандартное поведение для отдельных плат (не портируемое на другие платы).
О важных ограничениях использования функций обратного вызова в классе Timer читайте тут.
Примечание: Внутри прерываний память выделять нельзя, и поэтому исключения, возбуждаемые внутри обработчиков (функций обратного вызова), будут малоинформативны. О том, как обойти это ограничение, читайте в описании метода micropython.alloc_emergency_exception_buf(). |
Конструкторы
Методы
- TimerWiPy.init(mode, *, width=16)
- TimerWiPy.deinit()
- TimerWiPy.channel(channel, **, freq, period, polarity=TimerWiPy.POSITIVE, duty_cycle=0)