HHIMERA писал(а):Для Reciprocal Counting понадобится PWM input mode, PWM mode/One-pulse mode (Gate) и Slave timer in Gated mode... никаких прерываний...
Что то не очень прозрачно.
PWM INPIT: Таймер тактируется опорным сигналом. На него на два входа захвата, настроенных на противоположные полярности, приходит измеряемый сигнал. В оригинале этот таймер настроен также на сброс по одному из уровней входного сигнала. Таким образом измеряется период сигнала и величина например положительной части периода.
PWM mode: Выходной сигнал генерируется с периодом, заданным регистром автозагрузки. Скважность определяется содержимым регистра захвата-сравнения.
One-pulse mode: Означает что таймер досчитывает до значения регистра автозагрузки и останавливается.
Slave timer in Gated mode: Означает, что тот таймер что делает PWM может включать и выключать второй таймер, который считает входной сигнал.
Один таймер будет просто считать входные импульсы, второй таймер захватит фронт первого импульса сигнала в gate, третий таймер захватит последний фронт (первый фронт после окончания gate) а четвертый таймер будет формировать этот самый gate с помощью PWM для первых двух таймеров в положительной полярности а для последнего в отрицательной. Правильно?
Первый таймер будет показывать количесво периодов входного сигнала за интервал gate.
Второй таймер в регистре захвата будет содержать время фронта первого импульса сигнала. Третий таймер в регистре захвата будет содержать время последнего, не посчитанного по причине окнчания gate фронта входного сигнала. Разница захватов второго и третьего таймеров даст точное время между первым и последним фронтом входного сигнала в периодах опорного сигнала. Количество периодов сигнала нужно будет увеличить на 1, поскольку последний период не посчитался. Все данные для подстановки в формулу есть.
Теперь как сделать таким образом, что бы один таймер управлят сразу тремя? Внешние соединения?