Hej
mam pare pytan odnosnie kalkulatora ktory robie na zaliczenie na studiach. Generalnie prawie wszystko dziala ale mam pare problemow wymienionych + istotne fragmenty kodu. Programik na Atmege8, uzywam AVRGCC + hapsim, biblioteka wyswietlacza hd44780.
1) Dlaczego po 32768, wyswietla liczby na minusie / nie wyswietla wiekszych (to samo z -32768)
2) Jak zrobic zeby zatrzymac petle przed IF'em (zeby nie migalo)
To przed IFem wyswietla liczbe, warunki zczytuja przycisniecie przyciskow, dziala ale mruga (petla przechodzi miliony razy), chcialbym zeby zaczela przechodzic dopiero jak sie cos wcisnie. Usuniecie LCD_Clear z else powoduje ze wyswietla ta liczbe kolo siebie w nieskonczonasc tworzac ciag, np wpiszemy 5 to jest 55555555555...
3) Do zamiany int - string uzywam funkcji "itoa", czy jest odpowiednik do floatow itp ? chcialbym aby obslugiwal on liczby po przecinku.
mam pare pytan odnosnie kalkulatora ktory robie na zaliczenie na studiach. Generalnie prawie wszystko dziala ale mam pare problemow wymienionych + istotne fragmenty kodu. Programik na Atmege8, uzywam AVRGCC + hapsim, biblioteka wyswietlacza hd44780.
1) Dlaczego po 32768, wyswietla liczby na minusie / nie wyswietla wiekszych (to samo z -32768)
int a= coś;
itoa(a, buf, 10);
LCD_WriteText(buf); 2) Jak zrobic zeby zatrzymac petle przed IF'em (zeby nie migalo)
while(1)
{
a= coś;
itoa(a, buf, 10);
LCD_WriteText(buf);
if bit_is_set(PINA, PA0)
{}
...
else
{
LCD_Clear();
} To przed IFem wyswietla liczbe, warunki zczytuja przycisniecie przyciskow, dziala ale mruga (petla przechodzi miliony razy), chcialbym zeby zaczela przechodzic dopiero jak sie cos wcisnie. Usuniecie LCD_Clear z else powoduje ze wyswietla ta liczbe kolo siebie w nieskonczonasc tworzac ciag, np wpiszemy 5 to jest 55555555555...
3) Do zamiany int - string uzywam funkcji "itoa", czy jest odpowiednik do floatow itp ? chcialbym aby obslugiwal on liczby po przecinku.