Ксения (01.05.2005 12:59, просмотров: 1) ответил Amal на Подскажите идею по преобразованию мендр - синус на АВР
Вторая идея В памяти заводятся две переменные: 1) текущий период T1 и 2) новый период T2.
По прерываниям от таймера формируется и выдается на ЦАП текущее значение синусоиды, вычисляемой (возможно интерполяцией по таблице) исходя из текущего периода T1. В момент перехода через ноль текущий период обновляется, путем копирования в T1 значения T2 (T1=T2). Та же таймерная процедура ведет счетчик времени.
Основная программа в это время занимается тем, что засекает время t между точками фронта меандра (точки изменения его напряжения) и устанавливает величину нового периода как удвоенное значение времени между перебросами меандра (T2=2*t).
Такой алгоритм будет выдавать синусоиду АСИНХРОННО, т.е. с меандром она не будет совпадать по фазе. Однако требованию соблюдения частот этот алгоритм будет строго соответствовать. Кроме того гарантирует, что синусоида будет гладкой и непрерывной.