Курс 10 • Урок 3 из 8 • 3 часа учебной нагрузки

Таймеры, ШИМ и измерение времени

Цель: Понять аппаратные таймеры микроконтроллера, делители частоты, сравнение и захват значения счётчика, а также формирование широтно-импульсного сигнала без программных задержек.

3 часа короткая теория, самостоятельная практика, проверка результата и тест.

Суть темы

Аппаратный таймер — счётчик, который изменяет своё значение от тактового сигнала независимо от выполнения обычного программного кода. Его используют для точных задержек, периодических событий, измерения длительности внешних импульсов и формирования широтно-импульсной модуляции (ШИМ).

Перед счётчиком может стоять делитель частоты. При достижении заданного предела возникает событие переполнения или обновления. Регистр сравнения позволяет выполнить действие при совпадении значения счётчика с заданным числом, а режим захвата сохраняет текущее значение счётчика в момент внешнего фронта.

Ключевые связи и параметры

Сначала определяют фактическую частоту тактирования таймера по дереву тактирования микроконтроллера. Если после делителя частота счёта равна 1 МГц, один отсчёт соответствует 1 мкс. При тысяче отсчётов период составляет примерно 1 мс. Конкретный счётчик может считать от нуля до N включительно, поэтому программируемое значение всегда сверяют с документацией.

fсч = fтаймера / коэффициент_деленияT ≈ N / fсч

В режиме ШИМ период задаётся диапазоном счёта, а момент переключения — значением сравнения.

Разбор примера

После деления частоты таймер считает с частотой 1 МГц. Для периода около 1 мс требуется около 1000 отсчётов. Если момент сравнения установлен примерно на четверть периода, получаем заполнение около 25% при соответствующей полярности выхода.

При измерении внешнего сигнала два соседних захваченных значения отличаются на 100 отсчётов. При цене отсчёта 1 мкс период равен примерно 100 мкс, то есть частота — около 10 кГц.

Практическая работа и проверка

  1. По документации определите реальную частоту таймера.
  2. Рассчитайте делитель и период для сигнала около 1 кГц.
  3. Измерьте частоту осциллографом.
  4. Сформируйте несколько значений заполнения ШИМ и сравните расчёт с осциллограммой.
  5. Измерьте внешний период режимом захвата и учтите переполнение счётчика.

Типичные ошибки и диагностика

  • Считать частоту таймера равной частоте ядра без проверки дерева тактирования.
  • Ошибаться на единицу из-за границ счёта.
  • Формировать точный период программным переключением вывода при переменной загрузке процессора.
  • Вычитать захваченные значения без учёта переполнения счётчика.

Связь с реальным устройством

Таймеры используются в управлении приводами, измерителях частоты, генерации звука, опросе датчиков и временных протоколах. Их преимущество — аппаратная повторяемость времени при правильной настройке тактового сигнала.

Что нужно запомнить

  • Таймер считает аппаратные отсчёты от известной частоты.
  • Делитель частоты задаёт цену одного отсчёта.
  • Сравнение удобно для генерации событий, захват — для измерения времени внешнего сигнала.
  • Период и заполнение ШИМ задаются параметрами счётчика.
  • Фактическую частоту таймера определяют по документации и дереву тактирования.
Проверка знаний

Вопросы по уроку

Нужно 75%
Загрузка вопросов…