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

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
(не показаны 3 промежуточные версии этого же участника)
Строка 5: Строка 5:
=Класс TimerWiPy – управление аппаратными таймерами<ref>[http://docs.micropython.org/en/latest/library/machine.TimerWiPy.html docs.micropython.org - class TimerWiPy – control hardware timers]</ref>=
=Класс TimerWiPy – управление аппаратными таймерами<ref>[http://docs.micropython.org/en/latest/library/machine.TimerWiPy.html docs.micropython.org - class TimerWiPy – control hardware timers]</ref>=


{{Спойлер|'''Примечание:''' Этот класс – это нестандартная реализация класса Timer для [[WiPy]]. На [[WiPy]] он именуется machine.Timer, но в документации ниже он именуется machine.TimerWiPy, чтобы отличить его от более общего класса machine.Timer.}}
{{Примечание1|1=Этот класс – это нестандартная реализация класса Timer для [[WiPy]]. На [[WiPy]] он именуется machine.Timer, но в документации ниже он именуется machine.TimerWiPy, чтобы отличить его от более общего класса machine.Timer.}}


Аппаратные таймеры нужны для работы с периодами и событиями. Таймеры – это, возможно, самый универсальный и неоднородный тип оборудования в [[микроконтроллер]]ах и [[SoC-система]]х. Таймеры, установленные в разные модели, могут очень сильно отличаться друг от друга. В [[MicroPython]]’овском классе Timer определена базовая операция периодического запуска функции обратного вызова через заданное время (или один раз после задержки). Но в то же время этот класс позволяет задавать более нестандартное поведение для отдельных плат (не портируемое на другие платы).
Аппаратные таймеры нужны для работы с периодами и событиями. Таймеры – это, возможно, самый универсальный и неоднородный тип оборудования в [[микроконтроллер]]ах и [[SoC-система]]х. Таймеры, установленные в разные модели, могут очень сильно отличаться друг от друга. В [[MicroPython]]’овском классе Timer определена базовая операция периодического запуска функции обратного вызова через заданное время (или один раз после задержки). Но в то же время этот класс позволяет задавать более нестандартное поведение для отдельных плат (не портируемое на другие платы).
Строка 11: Строка 11:
О важных ограничениях использования функций обратного вызова в классе Timer читайте [http://docs.micropython.org/en/latest/library/machine.html#machine-callbacks тут].  
О важных ограничениях использования функций обратного вызова в классе 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 метода micropython.alloc_emergency_exception_buf()].}}
{{Примечание1|1=Внутри прерываний память выделять нельзя, и поэтому исключения, возбуждаемые внутри обработчиков (функций обратного вызова), будут малоинформативны. О том, как обойти это ограничение, читайте в описании [http://docs.micropython.org/en/latest/library/micropython.html#micropython.alloc_emergency_exception_buf метода micropython.alloc_emergency_exception_buf()].}}


==Конструкторы==
==Конструкторы==
Строка 23: Строка 23:
* [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.channel()|TimerWiPy.channel(channel, **, freq, period, polarity=TimerWiPy.POSITIVE, duty_cycle=0)]]
* [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.channel()|TimerWiPy.channel(channel, **, freq, period, polarity=TimerWiPy.POSITIVE, duty_cycle=0)]]


==Константы==


• TimerWiPy.deinit() – деинициализирует таймер. Останавливает таймер и отключает таймерный компонент.
* [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.ONE_SHOT|TimerWiPy.ONE_SHOT]]
TimerWiPy.channel(channel, **, freq, period, polarity=TimerWiPy.POSITIVE, duty_cycle=0) – если в этом методе задан аргумент channel (идентификатор канала), то он вернет ранее инициализированный объект TimerChannel (или None, если ранее никакого объекта TimerChannel инициализировано не было).
* [[MicroPython:Библиотеки/machine.TimerWiPy/TimerWiPy.PERIODIC|TimerWiPy.PERIODIC]]
В противном случае будет инициализирован и возвращен новый объект TimerChannel.
Режимом работы будет тот, что был настроен в объекте Timer, который использовался для создания канала.
o channel – если разрядность данных таймера составляет 16 бит, здесь должно быть TIMER.A или TIMER.B, а если 32 бита, то здесь должно быть TIMER.A | TIMER.B.
Именованные аргументы:
o freq – задает частоту (в герцах).
o period – задает период (в микросекундах).
Примечание: Нужно задавать либо freq, либо period, но никогда не оба аргумента одновременно.
o polarity – этот аргумент нужен для ШИМ, и в нем задается полярность ШИМ-сигнала.
o duty_cycle – это коэффициент заполнения ШИМ (этот аргумент нужен только для ШИМ). Это процентное значение (0.00-100.00). Поскольку WiPy не поддерживает числа с плавающей точкой, значение здесь должно быть задано в диапазоне 0-10000, где «10000» – означает 100.00%, 5050 – 50.50% и т.д.
Примечание: Когда канал работает в ШИМ-режиме, соответствующий контакт присваивается автоматически, что избавляет от необходимости присваивать контакту альтернативную функцию при помощи класса Pin. ШИМ поддерживают следующими контактами:
o GP24 – таймер 0, канал A.
o GP25 – таймер 1, канал A.
o GP9 – таймер 2, канал B.
o GP10 – таймер 3, канал A.
o GP11 – таймер 3, канал B.
 


=См.также=
=См.также=

Текущая версия от 20:29, 7 мая 2022

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


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

Примечание

Этот класс – это нестандартная реализация класса Timer для WiPy. На WiPy он именуется machine.Timer, но в документации ниже он именуется machine.TimerWiPy, чтобы отличить его от более общего класса machine.Timer.

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

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

Примечание

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

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

Методы

Константы

См.также

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