roxy
Guest
Sat Jul 05, 2008 10:56 pm
Dlaczego funkcja itoa(temp,str,10)
po konwersji zmiennej temp do "postaci tekstowej"
odwraca kolejnosc cyfr w buforze.
np
jezeli temp=1234
to str="4321"
????
Moze się ktos z tym spotkal i jak naprawic ten błld.
Używam WinAVR-20080610
roxy
Guest
Sun Jul 06, 2008 1:51 pm
Użytkownik "roxy" <kicak@o2.pl> napisał w wiadomości
news:g4oqmd$rrg$1@news.onet.pl...
Quote:
Dlaczego funkcja itoa(temp,str,10)
po konwersji zmiennej temp do "postaci tekstowej"
odwraca kolejnosc cyfr w buforze.
np
jezeli temp=1234
to str="4321"
????
Moze się ktos z tym spotkal i jak naprawic ten błld.
Używam WinAVR-20080610
nikt nie spotkał sie z tym problemem?
Przytocze poniżej fragment programu:
int i;
....
i=1234; // na przykład taka liczba
....
lcd_write_text(itoa(i,str,10));
....
na wyswietlaczu mam " 4321"
Paweł Hadam
Guest
Sun Jul 06, 2008 4:38 pm
roxy pisze:
Quote:
nikt nie spotkał sie z tym problemem?
Przytocze poniżej fragment programu:
int i;
...
i=1234; // na przykład taka liczba
...
lcd_write_text(itoa(i,str,10));
...
na wyswietlaczu mam " 4321"
Ja bym zaczął od sprawdzenia działania
lcd_write_text("1234");
Pozdrawiam,
Paweł.
roxy
Guest
Sun Jul 06, 2008 5:09 pm
Użytkownik "Paweł Hadam" <hmpawel@remove.it.gmail.com> napisał w wiadomości
news:4870e6eb$1@news.home.net.pl...
Quote:
roxy pisze:
nikt nie spotkał sie z tym problemem?
Przytocze poniżej fragment programu:
int i;
...
i=1234; // na przykład taka liczba
...
lcd_write_text(itoa(i,str,10));
...
na wyswietlaczu mam " 4321"
Ja bym zaczął od sprawdzenia działania
lcd_write_text("1234");
Pozdrawiam,
Paweł.
sprawdzalem tak jak wyzej. Wynik poprawny.
Blad wystepuje nawet jezeli wykonam:
lcd_write_text(itoa(12345,str,10));
dodam ze mikrokontroler to ATtiny 26
J.F.
Guest
Sun Jul 06, 2008 6:38 pm
On Sun, 6 Jul 2008 18:09:31 +0200, roxy wrote:
Quote:
sprawdzalem tak jak wyzej. Wynik poprawny.
Blad wystepuje nawet jezeli wykonam:
lcd_write_text(itoa(12345,str,10));
A patrzyles na listing w assemblerze ?
Jesli korzystasz z tego
http://www.amelek.gda.pl/avr/libc/avr-libc-reference.html
to itoa wewnetrznie wylicza faktycznie odwrotnie,
po czym wyskakuje przez strrev.
Moze w twojej wersji nie ma wywolania, moze strrev nie ma.
J.