MicroPython:Библиотеки/pyb/Класс Timer/Timer.channel(): различия между версиями
Материал из Онлайн справочника
Myagkij (обсуждение | вклад) (Новая страница: «{{MicroPython/Панель перехода}} {{Перевод от Сubewriter}} {{Myagkij-редактор}} =Timer.channel(channel, mode, ...)<ref>[http://doc...») |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 48: | Строка 48: | ||
** '''Timer.BOTH''' – захват сигнала на обоих фронтах. | ** '''Timer.BOTH''' – захват сигнала на обоих фронтах. | ||
{{Примечание1 | |||
|Захват сигнала работает только на главном канале, но не на комплиментарных. | |||
}} | |||
Примечания по режимам Timer.ENC: | {{Блок/Инфо1 | ||
|1=Примечания по режимам Timer.ENC: | |||
|2= | |||
* Требуется два контакта, поэтому один или оба этих контакта должны быть настроены на использование соответствующей альтернативной функции при помощи [[API]] класса Pin. | * Требуется два контакта, поэтому один или оба этих контакта должны быть настроены на использование соответствующей альтернативной функции при помощи [[API]] класса Pin. | ||
* Значение энкодера считывается с помощью метода timer.counter(). | * Значение энкодера считывается с помощью метода timer.counter(). | ||
* Работает только на ''CH1'' и ''CH2'' (а не на ''CH1N'' и ''CH2N''). | * Работает только на ''CH1'' и ''CH2'' (а не на ''CH1N'' и ''CH2N''). | ||
* При включении режима [[энкодер]]а номер канала игнорируется. | * При включении режима [[энкодер]]а номер канала игнорируется. | ||
}} | |||
Пример использования [[ШИМ]]: | Пример использования [[ШИМ]]: |
Версия от 20:25, 7 мая 2022
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
Timer.channel(channel, mode, ...)[1]
Timer.channel(channel, mode, ...)
Если передать этому методу только номер канала (channel), он вернет ранее инициализированный объект TimerChannel (или None, если никакого канала ранее инициализировано не было).
В противном случае будет инициализирован и возвращен объект TimerChannel.
Каждый канал можно настроить на выполнение ШИМ, а также на работу в режимах сравнения (Output Compare) и захвата сигнала (Input Capture). Все каналы пользуются одним и тем же таймером, что также значит, что они используют одну и ту же таймерную частоту.
Именованные аргументы для этого метода:
- mode – это режим работы канала:
- Timer.PWM – таймер будет работать в режиме ШИМ (активный высокий уровень).
- Timer.PWM_INVERTED – таймер будет работать в режиме ШИМ (активный низкий уровень).
- Timer.OC_TIMING – это значит, что контакты никак не управляются.
- Timer.OC_ACTIVE – если при сравнении было обнаружено совпадение, контакт станет активным (активный уровень определяется полярностью).
- Timer.OC_INACTIVE – если при сравнении было обнаружено совпадение, контакт станет неактивным.
- Timer.OC_TOGGLE – если при сравнении было обнаружено совпадение, контакт будет переключен.
- Timer.OC_FORCED_ACTIVE – контакт будет принудительно сделан активным (сравнение будет игнорироваться).
- Timer.OC_FORCED_INACTIVE – контакт будет принудительно сделан неактивным (сравнение будет игнорироваться).
- Timer.IC – таймер будет работать в режиме захвата сигнала.
- Timer.ENC_A – таймер будет работать в режиме энкодера. Значение счетчика будет меняться только при изменении CH1.
- Timer.ENC_B – таймер будет работать в режиме энкодера. Значение счетчика будет меняться только при изменении CH2.
- Timer.ENC_AB – таймер будет работать в режиме энкодера. Значение счетчика будет меняться при изменении CH1 или CH2.
- callback – канальная функция обратного вызова. Ее также можно задать с помощью метода TimerChannel.callback().
- pin – здесь задается объект Pin (по умолчанию – None). То есть на канале этого контакта будет использоваться альтернативная функция. Если контакт не поддерживает никаких альтернативных функций для этого таймерного канала, это выдаст ошибку.
Именованные аргументы для режимов Timer.PWM:
- pulse_width – задает начальное ШИМ-значение.
- pulse_width_percent – задает начальное ШИМ-значение в процентах.
Именованные аргументы для режимов Timer.OC:
- compare – задает начальное значение регистра сравнения.
- polarity – здесь могут быть следующие значения:
- Timer.HIGH – выходной контакт имеет активный высокий уровень.
- Timer.LOW – выходной контакт имеет активный низкий уровень.
Именованные аргументы для режимов Timer.IC:
- polarity – здесь могут быть следующие значения:
- Timer.RISING – захват сигнала на переднем фронте.
- Timer.FALLING – захват сигнала на заднем фронте.
- Timer.BOTH – захват сигнала на обоих фронтах.
Пример использования ШИМ:
timer = pyb.Timer(2, freq=1000)
ch2 = timer.channel(2, pyb.Timer.PWM, pin=pyb.Pin.board.X2, pulse_width=8000)
ch3 = timer.channel(3, pyb.Timer.PWM, pin=pyb.Pin.board.X3, pulse_width=16000)