Input capture
Функция таймера, фиксирующая значение счётчика в тот самый такт, когда на вывод приходит фронт сигнала.
Наивный способ измерить импульс — прочитать таймер в обработчике прерывания. Тогда точность ограничена задержкой прерывания, а она зависит от того, что в этот момент выполнялось. Input capture переносит измерение в аппаратуру: когда приходит фронт, таймер копирует своё значение в регистр захвата, а программа забирает его, когда дойдут руки. Точность — один тик таймера независимо от нагрузки.
Два захваченных значения дают период или длительность импульса. Так декодируют сигнал RC-приёмника, измеряют эхо ультразвукового датчика или читают ИК-пульт. Зеркальная функция — output compare, на ней держится ШИМ. Подключите к DMA — и целые последовательности импульсов можно записывать, не отвлекая ядро.