Правильная и точная настройка периода
- Каждый таймер имеет 16-битный линейный предделитель (prescaler) (1,2,3 .. .65536)
- Регистр автоперезагрузки (auto-reload register) определяет период подсчета
- Событие обновления (update event) (прерывание или DMA) генерируется при переполнении или опустошении
- Запускает передачу содержимого регистра из предварительной загрузки в работу (предделитель, период, сравнение)
- Снижение сбоев при обновлении регистров сравнения
- Частота выдачи прерываний или обновления изменяется с помощью счетчика повторений (repetition counter).
На этой странице объясняется, как настроить период отсчета таймера. Каждый таймер включает в себя линейный предделитель, который позволяет вам делить тактовый сигнал на любое целое число от 1 до 65536.
Он позволяет точно регулировать скорость счета. Например, деление на 80 даст точную частоту счета 1 МГц, когда тактовая частота APB составляет 80 МГц.
Регистр автоперезагрузки определяет период счета: в режиме счета вниз счетчик автоматически перезагружается со значением периода, когда он опустошится. В режиме счета вверх счетчик перезагружается и сбрасывается, когда он превышает значение регистра автоперезагрузки.
Событие обновления выдается, когда счетчик опустошается или переполняется, и начинается новый период. Он запускает запрос прерывания или DMA, который используется для синхронной настройки параметров таймера с его периодом, что полезно для управления в реальном времени. Это событие обновления инициирует переход от предварительной загрузки к активным регистрам для нескольких параметров, в частности для предделителя тактовой частоты, значения автоперезагрузки, регистров сравнения и режима ШИМ.
8-битный программируемый счетчик повторений (repetition counter) позволяет вам отделить частоту выдачи прерываний от периода подсчета и иметь, например, одно прерывание через каждый отдельный, 2-й, 3-й и до 256-й период ШИМ. Это особенно полезно при работе с высокими частотами ШИМ.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: