[an error occurred while processing this directive]
|
АЦП меги128, хочу получить результат с двух каналов 0 и 1.
Результат получается для один и тот же для любого канала.
Где? Ну где я накосячил? Понимаю, что пятница, но я ведь все выходные буду с ума сходить...
unsigned int adc_convert_10bit (unsigned char ch)
{
unsigned char adc_datal, adc_datah;
/* обозначаем канал */
if(ch==0) ADMUX = 0x00;
if(ch==1) ADMUX = 0x01;
ADCSRA |= BIT(ADIF); /* очистка флага окончания */
ADCSRA |= BIT(ADSC); /* начало преобразования */
while(!(ADCSRA | BIT(ADIF))); /* ожидание флага окончания */
ADCSRA |= BIT(ADIF); /* очистка флага окончания */
adc_datal = ADCL; /* сохранение данных */
adc_datah = ADCH;
return ((adc_datal)|((adc_datah)<<8)); /* Возвращаем значение (10 бит) */
}
Заранее благодарю!
E-mail: info@telesys.ru