HHIMERA писал(а):
Решается... но ЛИ её почему-то забраковал... ввиду ейной некрасивости... Два таймера... TIM2 и TIM3... как частный случай...
Если решается то гуд. По идее надо три таймера - один счетчик считает периоды входной частоты (переполнения считать тут, в принципе, не нужно, хватит разрядности и одного) и осуществляет захват измерительного таймера по фронту в начале измерения и в конце (чтоб получалось целое число периодов входной частоты). Т.е. на цикл измерения имеем два захвата. Потом измерительный таймер, счетчик которого будет захватываться первым таймером. И еще нужен счетчик переполнений измерительного таймера. Обязательно. Тогда работа будет по такой схеме (примерно):
- состояние на начало измернения:
*измерительный таймер свободно тикает, его переполнения считаются другим таймеров
*счетчик периодов входной частоты обнулен
*захват запрещен
-старт измерения:
*разрешаем захват
*как только приходит первый фронт происходит аппаратный (!) захват измерительного счетчика и счетчика его переполнений
*захват запрещается
*считываются захваченные значения
*ждем некоторое не строго определенное время (но так чтобы счетчик периодов входной частоты не успел переполнится, либо контролировать переполнение) и разрешаем захват
*по приходу очередного фронта изм. счетчик и счетчик переполнений снова захватываются
*запрещаем захват
*считаем результат и приводим все к исходному состоянию.
Единственный критичный программный момент - это запрет захвата - нужно успеть запретить его раньше чем произойдет второй захват. Если можно сконфигурировать его аппаратно то вообще хорошо.
Такая схема возможна?
HHIMERA писал(а):
Это у же вторично... и особых проблем не должно вызывать...
Еще один таймер и все дела ))
Любой, заслуживающий внимания, опыт приобретается себе в убыток...