Страница 1 из 1
Измеритель фаз и модули CCP
Добавлено: Пт сен 18, 2015 00:34:30
virus33
В камне pic16f877a присутствует два модуля CCP.
Возможно ли будет произвести одновременные замеры двух входящих сигналов, для последующего расчета фазы?
На основе сср делал частотомер, выполнял захват и сравнением с значением 16 битного таймера, а захватывать два сигнала не пробовал.
Re: Измеритель фаз и модули CCP
Добавлено: Пт сен 18, 2015 04:19:39
КРАМ
Для сравнения ДВУХ сигналов по фазе необходимо и достаточно, чтобы оба модуля захвата имели ОБЩУЮ СЧЕТНУЮ БАЗУ. То есть либо единый счетчик (что мы и имеем в Вашем случае), либо два разных счетчика, но работающие от единого, либо когерентного тактирования.
Есть только одно замечание.
Нужно учитывать переполнение счетчиков путем задания типов переменных используемых в качестве буферов разрядностью ВЫШЕ, чем разрядность самого таймера/модуля захвата.
Скажем, в Вашем случае буферы будут uint32_t (unsingned long). При вычитании буферов каналов (нахождении разности фаз) нужно привести тип к int16_t (int):
Код: Выделить всё
uint32_t phase1, phase2
..
..
delta_phase=(int_16t)(phase1-phase2);
Тогда переполнение будет учтено и результат будет ЗНАКОВЫМ (отставание-опережение фазы).