xkp писал(а):Измерить нужно время между импульсами, но не в коем случае не количество импульсов в секунду(например), так как этот способ вызовет задержку в эту самую секунду, для устройства это критично. В программе для этого инициализировано прерывание INT0 по нарастанию сигнала. Частота импульсов может варироваться от 1 до 350 Гц. Думаю создать какой-нито счетчик, а в прерывании INT0 смотреть показания счетчика и обнулять его.
Для этой цели есть модуль Capture в МК.
Этот модуль по входному событию на пине (входе модуля) производит АППАРАТНУЮ запись (захват) значения некоего таймера, который работает с этим модулем.
Одновременно происходит прерывание от этого модуля, где и считывается из буфера Capture то значение счетчика которое было захвачено.
Делается так же буфер на два значения измерений, где из текущего захвата вычитается предыдущее значение.
Для обеспечения заданной точности по любому потребуется усреднять (фильтровать) измерения, поэтому нужен так же кольцевой буфер на несколько измерений, которые каждый цикл захвата усредняются.
Задержка НЕИЗБЕЖНА. Это ФИЗИКА и МАТЕМАТИКА. Это ПРИРОДА...
