Hallo... ich wolltrnur fragen, wie ich mit Kommazahlen rechnen kann. z.B.: int i; charbuffer[10]; double j; i=5; j=i*1.024; itoa(j,buffer, 10); lcd_puts(buffer); aber leider funktioniertdas bei mir nichtso recht. Kann mir jemand helfen? gruß, Mike
Was heißt es "funktioniert nicht"? Welche Fehlermeldung? Welchen Compiler verwendest du überhaupt?
es heißt schon char buffer[10] (tippfehler) der compiler meldet keinen fehler, das lcd zeigt nur die Nachkommastellen der Zahl an
sorry hab gemeint das LCD zeigt die Nachkommastellen nichtan, die Ganzzahlen schon.
itoa ist eine Abkürzung für Integer to ASCI ! Du hast immer noch nicht erzählt welchen Compiler - manche kennen z.B Dtostrf etc. Gruß Bernhard
itoa() ist nur für Integer, also Ganzzahlen, deshalb wandelt der Compiler da Float nach Int um. Probier's mal mit ftoa() falls der Compiler das hat.
ftoa() gibt es beim avr-gcc nicht, muss dtostrf heißen. Schau mal in die avr-libc Doku.
itoa wandelt integer in String. Wenn Du ihm ein double übergibst, dann wandelt er den in ein int um.
also ich hab's ausprobiert, jedoch komm ich mitder Syntax nich ganz klar, wie mussich dasverwenden? - beispiel code wäre super. ich verwende WinAVR
hier meinversuchsprogramm: char buffer[16]; int temp; double test; lcd_init(LCD_DISP_ON); temp = 15; test = temp * 3.132; dtostrf(test, 8, 3, buffer); lcd_clrscr(); lcd_puts(buffer);
avr-libc-user-manual.pdf im \doc von WIN-AVR: Buffer muss Pointer sein also *buffer ob deine LCD Routiene damit zurechtkommt weiss ich nicht. Der rest sieht ganz gut aus. Ach so LIBFLAGS = -lm muss im Makefile gesetzt sein. Gruß Bernhard
buffer ist bei der Deklaration als Array ein Pointer, das passt schon in Mike's Programm.
Korrektur s kann Pointer sein (muss wohl nicht zwingend). Sei so gut und gib bitte die Fehlermeldungen mit an. Gruß Bernhard
Ist für mich ein großes (Umsteiger-) Problem, das ich noch mit String denke. Ein Array anstelle eines Pointer zu nemen gibt bei den meisten Pascal Compilern auch eine Fehlermeldung. Gruß Bernhard
Egal ob du buffer als "char *buffer=..." oder als "char buffer[20]" deklarierst, wenn du "buffer" schreibst ist das immer ein Pointer der auf das erste Element des Arrays zeigt.
@Andreas hab ich kapiert (und auch schon ne ertse eigne Anwendung entmüllt :-) Vielen Dank Bernhard
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.