MicroPython:Библиотеки/pyb/Класс Timer/Timer.channel()
Материал из Онлайн справочника
Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.
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)