Bardzo Was proszę o pomoc bo nie mogę sobie dać rady.
Uruchamiam przetwornik ADC w ATMega 8. Mam podłączony wyświetlacza LCD 2x16 do prezentacji wyników. Jako źródło napięcia stosuję napięcie zasilające 5V.
I nie mogę uzyskać stabilnych wskazań. Po konwersji cały czas wynik jest inny. Jako płytkę testową stosuję AVT948 bo miałem pod ręką tyle tylko że inny wyświetlacz. Kwarc 16MHz.
Zrobione jest tam wszystko jak trzeba, napięcie zasilające przetwornik filtrowane, napięcie zasilające też.
Pomóżcie co mam zrobić i gdzie jest błąd.
Podsyłam fragment programu.
Uruchamiam przetwornik ADC w ATMega 8. Mam podłączony wyświetlacza LCD 2x16 do prezentacji wyników. Jako źródło napięcia stosuję napięcie zasilające 5V.
I nie mogę uzyskać stabilnych wskazań. Po konwersji cały czas wynik jest inny. Jako płytkę testową stosuję AVT948 bo miałem pod ręką tyle tylko że inny wyświetlacz. Kwarc 16MHz.
Zrobione jest tam wszystko jak trzeba, napięcie zasilające przetwornik filtrowane, napięcie zasilające też.
Pomóżcie co mam zrobić i gdzie jest błąd.
Podsyłam fragment programu.
nt main(void)
{
DDRB=0xFF;
DDRC=0x00;
DDRD=0xFF;
PORTC=0x00;
PORTD=0xFF;
Lcd_init();
ADMUX=0x40;
//ADC channel 0, internal vref=5V
ADCSR=0x86; //single conversion, prescaler=64
ADCSR|=0x40;
//start first dummy conversion - here ADC is adjusting himself
while((ADCSR & 0x40)!=0);
Lcd_clear();
while(1)
{
Waitms(100);
Lcd_home();
dana=GetADC();
Lcd_write(itoa(dana, table, 10));
Lcd_write_rom(PSTR(" "));
}
return 0;
}
unsigned int GetADC(void)
{
ADCSR|=0x40;
while((ADCSR&0x40)!=0);
return ADC;
}