Здравствуйте! Подскажите пожалуйста, кто подключал датчики TMP37 на Мегу??? Всего датчиков - 4. У меня проблема с подключением датчиков (схеме внизу). 1. Без датчиков в результате преобразования имею мусор. 2. Полученное значение всегда разное от 50-350 ??? даже при усреднении.
Может я неправильно входы переклачаю? ставлю задержку 1мс.
Вот сама функция:
void adc_result (p_menu p_item_name) { unsigned char i; unsigned char channel = 0; unsigned int result = 0; while (channel < 4) { if(channel == 0) ADMUX = 0b11000000; if(channel == 1) ADMUX = 0b11000001; if(channel == 2) ADMUX = 0b11000010; if(channel == 3) ADMUX = 0b11000011; delay_ms(1); //задержка 1мс для гарантированного переключения входа мультиплекстора
for (i=0;i<20;i++) // цикл для 20 ти преобразований. { ADCSRA.6 = 1; // начало проеобразования
while(ADCSRA.6); // ждем конца преобразования
result += ADCW; // записываем значение } p_item_name[channel]->adc = (result / 20) ; // записать среднего от 20ти преобраз-й в p_item_name[index]->adc channel ++; // перейти к следующему каналу }};
Помогите пожалуйста. Как получить нормальные показания???
|