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

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
xdostup
Родился
Сообщения: 3
Зарегистрирован: Чт ноя 20, 2008 21:57:25

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

Сообщение xdostup »

Помогите !!! Уже замордовался !!!
Хочу собрать дельта модуляцию
Вот кусок кода Winavr!!!
ACSR &=~_BV(ACD);//включение компаратора
Допустим компаратор сработал
К какому биту обратиться за результатом
Datasheet смотрел
Реклама
Аватара пользователя
MOHOXPOM
Встал на лапы
Сообщения: 108
Зарегистрирован: Вт мар 18, 2008 08:25:31
Откуда: Красноярск
Контактная информация:

Сообщение 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;
}
Как зачем мне голова?! Я ей ем!!!
Реклама
xdostup
Родился
Сообщения: 3
Зарегистрирован: Чт ноя 20, 2008 21:57:25

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

Сообщение xdostup »

Подскажите как запустить компаратор а не АЦП в Winavr

А вообще предлагаю открыть тему по оцифровке сигнала
и передачи его по радиоканалу!!!
Аватара пользователя
biDE
Встал на лапы
Сообщения: 84
Зарегистрирован: Пн ноя 12, 2007 20:53:05
Откуда: Одесса

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

Сообщение biDE »

xdostup писал(а):К какому биту обратиться за результатом
Datasheet смотрел
Состояние компаратора в регистре ACSR, бит ACO. А можно и прерывания тамже настроить.
Реклама
Эиком - электронные компоненты и радиодетали
xdostup
Родился
Сообщения: 3
Зарегистрирован: Чт ноя 20, 2008 21:57:25

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

Сообщение 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 раз
без прерываний Вот что тут не правильно!!!!!
Реклама
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»