11. Таймеры общего назначения



Pdf көрінісі
бет1/3
Дата27.05.2023
өлшемі260,79 Kb.
#177827
  1   2   3
Байланысты:
ЛК11 - Таймеры общего назначения



11. Таймеры общего назначения 
Таймеры в микроконтроллерах STM32 делятся по функционалу на:
- basic timers (базовые таймеры) 
- general-purpose timers (общего назначения: TIM2, TIM3, TIM4) 
- advanced-control timers (продвинутые таймеры: TIM1) 
В различных микроконтроллерах количество таймеров разная. Согласно 
документации к контроллеру STM32F103C8 имеем 3 таймера general-purpose, и 
один advanced-control. 
 
Таймеры общего назначения имеют такой же функционал, как и базовые. 
Вообще, счетчики могут не только генерировать прерывания через определенное 
время и измерять время между событиями. Таймеры могут генерировать PWM сигнал, и 
одиночные импульсы, работать с периферией, например запускать преобразования АЦП, 
выполнять захват сигнала, работать с энкодером и тому подобное. Таймером будет 
посвящено несколько статей. Начнем с самого простого. 
11.1 Генерирование прерывания через равные промежутки времени 
Например, настроим таймер TIM4 и заставим его мигать светодиод через 
определенные промежутки времени. Ранее задержка делалась с помощью цикла. Давайте 
сделаем мигание светодиодом "по фэншую".
Итак, мы настроим таймер таким образом, чтобы он считал до определенного числа 
и вызывал прерывания по переполнению. Таймеры считают импульсы, которыми они 
тактируются. В STM микроконтроллерах есть делитель частоты для каждого таймера. 
Значение делителя могут быть от 1 до 65535. Кроме того, можно задать число, досчитав к 
которому таймер будет вызывать прерывания по переполнению, обнуляться и считать 
сначала. Комбинируя эти два параметра, можно добиться нужной частоты, с которой 
будет вызываться прерывания от таймера. В данном примере контроллер будет 
тактироваться от внешнего кварца частотой 8МГц. Таймер также будет работать на этой 
частоте, так как значение делителя APB1 = 1. Обратите внимание на желтые блоки схемы 
тактирования. 


Рисунок 11.1 – Структурная сзема тактирования 
То есть, если APB1
 = 
1, тогда таймер TIM4 будет тактуватися частотой 8МГц. 
Если APB1 = 2, тогда таймер TIM4 будет тактуватися тоже частотой 8МГц. 
Потому, как показано на рисунке, частота умножается на 2. Если APB1

4, тогда 
таймер TIM4 будет тактуватися частотой 4МГц. Потому, как показано на рисунке, если 
APB1> 1, то частота, деленная на APB1 затем домножиться на 2. Не забывайте об этой 
особенности. 
Мы установим делитеь 8000. Таймер будет считать с частотой 8000000/8000 = 1000 
раз в секунду. Установим период = 500. То есть, досчитав до 500 (это 2 раза в секунду) 
будет вызываться прерывание. В обработчике прерывания мы пропишем команду для 
изменения состояния светодиода. 


Достарыңызбен бөлісу:
  1   2   3




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет