Цитата(Andy_F @ Oct 8 2006, 18:57)

Возник следующий вопрос: как сгенерить два меандра с заданным фазовым сдвигом между ними, при чём этот сдвиг должен достаточно часто программно меняться ?
Видимо, это можно реализовать на
16 bit Timer/Counter1 (для Меги). Как бы организовать поизящнее задание значения фазового сдвига? А то пока видится громоздкий алгоритм с остановкой таймера, записью в регистр одного из каналов требуемого фазового сдвига, сбросом прескалера, запуском таймера...
Спасибо.
Самое простое решение (на примере атмеги16) видится в генерации 8-кГц меандра, назовем его опорный канал, с помощью таймера0. А сдвинутый по фазе меандр получить комбинацией выходных сигналов двух каналов по совпадению ОС1А, ОС1В таймера1. Опорный канал вообще не трогать, а смена содержимого регистров OCR1A, OCR1B будет происходить одновременно, следовательно, фаза канала может меняться произвольно в пределах 180 градусов.