[an error occurred while processing this directive]
|
Вводные данные:
Частота 100Гц+/-5% (выпрямленная сеть)
Нужно ловить моменты прохода через ноль + выдавать сигнал наличия/отсутствия синхронизации.
Запускаем таймер1 в режиме 4 (CTC считает до значения OCR1A) в OCR1A помещаем значение максимальной длительности периода - 10.5 мС и ставим ICR1 в режим захвата.
После запуска ждем когда захваченое ICR1 значение будет в пределах 9.5...10.5мС и начинаем погоняться за счет уменьшения значения в OCR1A . В стабильном режиме, как мне видится, должно устаканиться в режиме когда ICR1 захватывает значение около 10мС а в OCR1A лежит порог (ICR1 + дребезг).
Может несколько сумбурно объяснил, но в голове вроде все сходится :-)