Forum: Compiler & IDEs ltoa funktioniert nicht?!


von Sebastian Voitzsch (Gast)


Lesenswert?

Hallo,

ich muss in einem Programm mit long-Werten rechnen. Da es nicht so 
geklappt hat, wie gewünscht (vermutlich ein casting-Problem), wollte ich 
Zwischenwerte ausgeben. Das haut nicht hin:

    ueff = 0;
    while(1)
    {
        ueff += 1000;
        ltoa(ueff,buf,10);
        lcd_setcursor(0,1);
        lcd_string(buf);

        _delay_ms(200);                 // warte 200ms
    }

Verwende ich itoa, wird der Wert ausgegeben (allerdings bis max. 32768, 
danach geht's negativ weiter). Mit ltoa erhalte ich bei ansonsten 
unverändertem Code gar keine Anzeige. buf ist ein char[20]-Array.

Wo liegt mein Denkfehler?

Danke,
Sebastian

von DirkB (Gast)


Lesenswert?

Bei ltoa muss der 1. Parameter (bei dir ueff) auch vom Typ long sein.

von Sebastian Voitzsch (Gast)


Lesenswert?

Hallo,

ueff war vom Typ long. Aber irgendwie hatte sich -mint8 als 
Compileroption eingeschlichen - das war das Problem. Das kommt davon, 
wenn man alte Makefiles recycled... ;-)

Sebastian

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.