Prosiłbym o pomoc w rozwiązaniu problemu, zaczynam swoja przygodę z Atmega. Chce zrobić prosty miernik składający z woltomierza- zakres pomiaru 0-20 V i amperomierza- zakres pomiaru 0-10 A.Jeżeli o sprawy techniczne typu dzielniki itp. to wiem jak to zrobić bardziej chodzi mi pomoc w kodzie. Chce wykorzystać sprintf do konwersji ADC na dziesiętne.
Kod:
Kod:
int main()
{
float vadc; //zmienna do obliczeń napiecia
//float cac; //zmienna do obliczeń pradu
char wynik[]=" "; //
//char wynikc[]=" "; //
lcd_init(); //inicjalizacja wyświwetlacza
adc_init(); //inicjalizacja ADC
sei(); //wlaczenie przerwania
lcd_locate(0, 0);
lcd_str_P(PSTR("Voltage"));
//lcd_locate(1, 0);
//lcd_str_P(PSTR("Current"));
lcd_locate(0, 15);
lcd_str_P(PSTR("V"));
//lcd_locate(1, 15);
//lcd_str_P(PSTR("A"));
while(1)
{
vadc=ADC*VREF/1024; // obliczanie wartosci
sprintf (wynik,"U=%1.3f",vadc); // zamiana na dziesietne
lcd_char(wynik); // wyswietlenie wyniku
lcd_locate(0,9); // wskanaie pozycji wyswietlenia
_delay_ms(500); // opoznienie
/*cadc=ADC*VREF/1024; // obliczanie wartosci
sprintf(wynikc,"U=%1.3f",cadc); // zamiana na dziestne
lcd_str_P(PSTR(wynikc)); // wyswietlenie wyniku --to nie niedziała
lcd_locate(1,9); // wskazanie pozycji wyswetlania
_delay_ms(500); // opoznienie
sei();*/
}
}