AVR GCC - problem z funkcja itoa

Jul 05, 2008 4 Replies

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


U¿ytkownik "roxy" snipped-for-privacy@o2.pl napisa³ w wiadomo¶ci news:g4oqmd$rrg$ snipped-for-privacy@news.onet.pl...

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"

roxy pisze:

Ja bym zaczął od sprawdzenia działania

lcd_write_text("1234");

Pozdrawiam, Paweł.

U¿ytkownik "Pawe³ Hadam" snipped-for-privacy@remove.it.gmail.com> napisa³ w wiadomo¶ci news:4870e6eb$ snipped-for-privacy@news.home.net.pl...

sprawdzalem tak jak wyzej. Wynik poprawny. Blad wystepuje nawet jezeli wykonam: lcd_write_text(itoa(12345,str,10));

dodam ze mikrokontroler to ATtiny 26

A patrzyles na listing w assemblerze ?

Jesli korzystasz z tego

formatting link
to itoa wewnetrznie wylicza faktycznie odwrotnie, po czym wyskakuje przez strrev.

Moze w twojej wersji nie ma wywolania, moze strrev nie ma.

J.

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required