MicroPython:Библиотеки/pyb/Класс Timer/Timer.init()

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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


Timer.init(*, freq, prescaler, period, mode=Timer.UP, div=1, callback=None, deadtime=0)[1]

Timer.init(*, freq, prescaler, period, mode=Timer.UP, div=1, callback=None, deadtime=0)

Инициализирует таймер. Инициализацию можно выполнить либо с помощью частоты (в Гц), либо с помощью делителя частоты (prescaler) и периода (period):

# задаем, чтобы таймер срабатывал на 100 Гц:
tim.init(freq=100)
# напрямую задаем делитель частоты и период:
tim.init(prescaler=83, period=999)

Именованные аргументы:

  • freq – здесь задается периодическая частота таймера. Этот параметр можно также рассматривать как частоту, с которой таймер проходит через один полный цикл.
  • prescaler – это значение (в диапазоне 0-0xffff), загружаемое в таймерный регистр делителя (PSC). Исходная частота таймера делится на (prescaler + 1), давая в результате частоту отсчитывания. Исходная частота таймеров 2-7 и 12-14 – это 84 МГц (pyb.freq()[2] * 2)), а таймеров 1 и 8-11 – 168 МГц (pyb.freq()[3] * 2)).
  • period – это значение, загружаемое в таймерный регистр автозагрузки (ARR). Для таймеров 1, 3, 4 и 6-15 это значение в диапазоне 0-0xffff, а для таймеров 2 и 5 – в диапазоне между 0-0x3fffffff. Это значение задает период таймера (т.е. порог, после которого счетчик таймера обнуляется). Счетчик будет обнулен после достижения значения (period + 1).
  • mode – здесь может быть одно из следующих значений:
    • Timer.UP – таймер будет считать с «0» до значения в ARR (это режим, используемый по умолчанию).
    • Timer.DOWN – таймер будет считать со значения в ARR до «0».
    • Timer.CENTER – таймер будет считать с «0» до значения в ARR, а потом обратно до «0».
  • div – здесь может быть «1», «2» или «4». Это значение, на которое делится тактовая частота, чтобы определить частоту семплирования, используемую цифровыми фильтрами.
  • callback – здесь задается функция обратного вызова, как в callback().
  • deadtime – здесь задается время задержки между сигналами на комплиментарных каналах (во время этой задержки оба канала будут неактивны). Значение в deadtime может быть целым числом в диапазоне между «0» и «1008», но с некоторыми ограничениями: в диапазоне 0-128 шаг 1, в диапазоне 128-256 – 2, в диапазоне 256-512 – 8, в диапазоне 512-1008 – 16. Единица измерения в deadtime – это частота source_freq, поделенная на div. Задержка deadtime доступна только на таймерах 1 и 8.

Нужно обязательно задать либо freq, либо одновременно prescaler и period.

См.также

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