Есть задача реализации PWM, т.е считывание PWM при сохранении достаточно высокой точности.
На входе контроллера - PWM датчика, нулевой показатель - 50% (с допуском), весь range +/- 12.5% вокруг 50%.
Требуемая точность считывания контроллером: 0.04375% или лучше.
Полный период длится 10 msec.
После считывания PWM входа - нужно делать не сложные расчеты для получения конечных данных + калибрацию датчика, посему реализация будет - простым 8-битным микроконтроллером типа PICa или Atmel ибо нужно низкое потребление.
Вопрос - как обычно реализуется микроконтролером считывание PWMa учитывая требуемую точность ? Ведь там-же программа, а ее real-time есть понятие весьма относительное....
Есть понятие timerа в такого типа контроллерах, как они могут помочь тут ? Считают ли они в точности по clockу контроллера (т.е. по его crystal/oscillator) ?
Прикидочные PWM вычисления:
предположим 10 MHz клок, не учитываем для простоты его ppm и jitter.
получаем длительность периода датчика = 100 000 клоков, 50% -> 50 000/ 100 000.
Требуемая точность: 0.04375% - т.е. минимальный надежно определяемый шаг = каждые 43.75 клока (скажем 43 клока) что есть 49.957% PWM.
Для чисто hardwareной системы (скажем FPGA) - это не проблема, но тут замешана программа выполения которой не всегда дает real-time относительно клока.
Как оно далется контроллерами ?
Спасибо