Помогите !!! Уже замордовался !!!
Хочу собрать дельта модуляцию
Вот кусок кода Winavr!!!
ACSR &=~_BV(ACD);//включение компаратора
Допустим компаратор сработал
К какому биту обратиться за результатом
Datasheet смотрел
Оцифровка сигнала (дельта модуляция) Очень необходима помощь
- Реклама
- MOHOXPOM
- Встал на лапы
- Сообщения: 108
- Зарегистрирован: Вт мар 18, 2008 08:25:31
- Откуда: Красноярск
- Контактная информация:
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;
}
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;
}
Как зачем мне голова?! Я ей ем!!!
Дельта модуляция
Подскажите как запустить компаратор а не АЦП в Winavr
А вообще предлагаю открыть тему по оцифровке сигнала
и передачи его по радиоканалу!!!
А вообще предлагаю открыть тему по оцифровке сигнала
и передачи его по радиоканалу!!!
Re: Оцифровка сигнала (дельта модуляция) Очень необходима по
Состояние компаратора в регистре ACSR, бит ACO. А можно и прерывания тамже настроить.xdostup писал(а):К какому биту обратиться за результатом
Datasheet смотрел
дельта модуляция
Вот код
#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 раз
без прерываний Вот что тут не правильно!!!!!
#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 раз
без прерываний Вот что тут не правильно!!!!!
- Реклама

