[an error occurred while processing this directive]
|
Возникла следующая задача:
Необходимо сформировать 2 прямоугольных,с частотой 7кГц,ТТЛ сигнала с возможность перестройки фазы 0..360 и шагом 0.1 градус(в принципе устроит и 0.5).
Используется микроконтроллер ATMEGA16 кварц на 16МГц.
Сейчас реализовано так: запускается таймер в режиме сранения,который по каждому флагу/прерыванию инвертирует аппаратно бит порта, т.е. имеем на выходе меандр в 7 кГц.Далее по каждому прерыванию этого таймера происходит программируемая задержка и вывод в другой порт, т.е. формирование сдвинутого сигнала относительно опорного, вроде бы всё ничего, НО:
1) в силу задерки от выполнения обработки прерывания минимальный сдвиг удаётся получить около 4 градусов, что есть плохо
2) шаг получается только где-то 0.5 градуса, хотелось бы помельче
3) диапазон регулировки 4...90 градусов из-за того, что привязаны к первому сигналу, что мало,т.к. хочется 0..360 (в принципе 0..180, т.к. сигнал периодический и симметричный).
Так вот может быть кто-нибудь видит решение этой проблемы, а то уже совсем запарился. Заранее спасибо всем.