Страница 1 из 1

Оцифровка сигнала (дельта модуляция) Очень необходима помощь

Добавлено: Пт ноя 21, 2008 17:33:39
xdostup
Помогите !!! Уже замордовался !!!
Хочу собрать дельта модуляцию
Вот кусок кода Winavr!!!
ACSR &=~_BV(ACD);//включение компаратора
Допустим компаратор сработал
К какому биту обратиться за результатом
Datasheet смотрел

Добавлено: Пт ноя 21, 2008 19:36:28
MOHOXPOM
16 битная ADCW - результат преобразования
ADSC - преобразование завершилось

пример:

SIGNAL(SIG_ADC){
while (ADCSRA & _BV(ADSC)) {} // Подождать, пока не будет сброшен флаг ADCSRA.ADSC

ADC_T = ((double)ADCW*5/1024)*1000; // Чтение результатов преобразования в милливольтах 5000 мВ
ADC_H = ADC_T/1000;
ADC_L = ADC_T-ADC_H*1000;
}

Дельта модуляция

Добавлено: Сб ноя 22, 2008 12:43:21
xdostup
Подскажите как запустить компаратор а не АЦП в Winavr

А вообще предлагаю открыть тему по оцифровке сигнала
и передачи его по радиоканалу!!!

Re: Оцифровка сигнала (дельта модуляция) Очень необходима по

Добавлено: Сб ноя 22, 2008 13:12:32
biDE
xdostup писал(а):К какому биту обратиться за результатом
Datasheet смотрел
Состояние компаратора в регистре ACSR, бит ACO. А можно и прерывания тамже настроить.

дельта модуляция

Добавлено: Сб ноя 22, 2008 14:50:45
xdostup
Вот код
#include <avr>
#include <util>
int main(void){
ACSR &=~_BV(ACD);//0-включение компаратора
while(1){
if (_BV(ACO)==0)
{ for (p=5;p>0;p--)
{ PORTD &= ~_BV(PD7); //PD7 выход с лог.0 =14
_delay_ms(200);
PORTD |= _BV(PD7); //PD7 выход с лог.1 =17
_delay_ms(200);
}
}
}
}
Т.е. компаратор сработал светодиод мигнул 5 раз
без прерываний Вот что тут не правильно!!!!!