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

Atmega32. Измерение напряжения

Добавлено: Вт май 14, 2013 19:09:58
BBird22
Привет, нужна ваша помощь.

Пытаюсь измерять напряжение и выводить в UART. Но вот какая проблема... Делитель напряжения расчитан на до 30В, однако начиная примерно с 5.5В в UART выводится ровно 50, а вот до 5.5В все правильно.
В чем проблема никак не могу понять, уже весь интернет перечитал.

Прикладываю скрины протеуса и сам код.

Заранее пасибо!

Re: Atmega32. Измерение напряжения

Добавлено: Вт май 14, 2013 21:36:09
Yusff
похоже, здесь: tmp = (ADCL|ADCH<<8);
во-первых adcl читается первым, что сделал компилятор неизвестно
во-вторых adch<<8 вернет 0
попробуйте так:
unsigned char low = ADCL;
unsigned int tmp = ADCH;
tmp = tmp<<8|low;

Re: Atmega32. Измерение напряжения

Добавлено: Ср май 15, 2013 05:43:33
BBird22
Yusff писал(а):похоже, здесь: tmp = (ADCL|ADCH<<8);
во-первых adcl читается первым, что сделал компилятор неизвестно
во-вторых adch<<8 вернет 0
попробуйте так:
unsigned char low = ADCL;
unsigned int tmp = ADCH;
tmp = tmp<<8|low;
Проверил, результат идентичен unsigned int tmp = (ADCL|ADCH<<8);

Re: Atmega32. Измерение напряжения

Добавлено: Ср май 15, 2013 10:26:09
Yusff
мобыть. у меня в кодевижне так не прокатывет.

Re: Atmega32. Измерение напряжения

Добавлено: Чт май 16, 2013 05:02:29
BBird22
Решение вопроса тут