Ну если смотреть после ресета, то напряжение постоянно скачет. Из - за чего не могу понять. Если выводить вот такую строку sprintf (lcd_buffer,"U=%u V", ADCDATAL), то значение этого регистра постоянно меняется, выводятся числа типа -16896, 18176, 12800. Абракадабра короче говоря.
Переделал в int, дробную часть пока не вывожу. Он сейчас должен хотя бы 1В показывать, а показывает 0. Отчего это может быть? Где тут ошибка?
void display_voltage(void) interrupt 6 {
unsigned char lcd_buffer[6]; int ADCValue; ADCValue = ((ADCDATAL + (ADCDATAH&0x0F))<<8); ADCValue=ADCValue*2500/4096; ADCValue=(ADCValue/1000); sprintf (lcd_buffer,"U=%i V", ADCValue); send_lcd(set_first_line, lcd_buffer); }
|