Мысль абсолютно верная, но есть более специализированные модули. В некоторых PIC16, например, в PIC16(L)F1619 есть пара интересных модулей:
1. ANGULAR TIMER
Цитата:
|
The Angular Timer (AT) module subdivides periodic
signals into smaller equally spaced intervals, the number
of which remain constant as the periodic signal frequency
changes. A counter tracks the intervals starting
at zero at each period event.
|
Грубо говоря, он измеряет угол поворота вала двигателя относительно маркера "0". Теоретически достаточно одного такого таймера, чтобы получать сдвиг фазы в радианах одного сигнала относительно другого.
2. 24-bit Signal Measurement Timer (SMT)
Цитата:
|
Performs high-resolution measurements of any digital signal
in hardware, resulting in more precise and accurate
measurements. This can be used as a standard
timer, ideal for speed control, range finding and
RPM indicators.
|
Достоинства - полностью аппаратное измерение частоты/временного интервала [периода]. Два модуля могут почти одновременно измерять период опорного сигнала и время задержки второго сигнала относительно опорного. Далее - вычисляется сдвиг фазы.
Недостаток - только 24 бита. А модули захвата (правда, в PIC24) можно каскадировать до 32-х бит.