Hallo, Ich schaffe es nicht ein Gradzeichen auszugeben. Hier ist mein Code: lcd_gotoxy(0,0); itoa(temp,buffer,10); lcd_puts("Temperatur:"); lcd_puts(buffer); lcd_gotoxy(0,1); itoa(f,buffer,10); lcd_puts("Fahrenheit:"); lcd_puts(buffer); Ich habe im Datenblatt nachgeguckt und dort im Zeichencode für das Gradzeichen rausgefunden, dass es der Hexawert 0xA0 ist. Habe es mit lcd_puts(0x0A); versucht. Leider funktioniert das nicht. Wie schaffe ich es dazu dann das C hinter der Temperatur auszugeben?
Da lcd_puts für einen nullterminierten String gedacht ist, solltest du sowas wie lcd_putc für ein einzelnes Zeichen verwenden (schau dir mal die Quelle von lcd_puts an, da wirst du sehen dass dort jedes Zeichen einzeln via lcd_putc o.Ä. ausgegeben wird)
:
Bearbeitet durch User
Heinz schrieb: > Habe es mit lcd_puts(0x0A); versucht. 0x0A ist kein String, sondern ein Byte. Und damit kann dein lcd_puts() höchstwahrscheinlich nichts anfangen.
in asm muss man .db "ßC" schreiben wie es in der hochsprache aussieht keine ahnung oder aber du schaust ins DB des LCD's unter CHARAKTERS und sendest als command FC= 1111 1101
ähm vergesst meinen text is bullshit was dort steht dachte geht um das °zeichen asche auf mein haupt
>Ich habe im Datenblatt nachgeguckt und dort im Zeichencode für das >Gradzeichen rausgefunden, dass es der Hexawert 0xA0 ist. Bei meinen Displays war das bisher immer 0xDF. Aber gut möglich das es bei dir 0xA0 ist. >Habe es mit lcd_puts(0x0A); versucht. Also gleich doppelt falsch. Wenn schon dann auch lcd_puts(0xA0); Dann hast du nur noch einen Fehler. lcd_putc(0xA0); und der zweite Fehler ist weg.
Hi >Ich habe im Datenblatt nachgeguckt und dort im Zeichencode für das >Gradzeichen rausgefunden, dass es der Hexawert 0xA0 ist. Bei HD44780-Kompatiblen Displays ist es 0xBF. >Habe es mit lcd_puts(0x0A); versucht. 0x0A ist auch nicht 0xA0. MfG Spess
Hi
>Bei HD44780-Kompatiblen Displays ist es 0xBF.
Holger hat Recht. Es ist natürlich 0xDF.
MfG Spess
Ok das mit dem Gradzeichen hat funktioniert! Wie kriege ich es noch hin das "C" bzw "F" vor dem Gradzeichen nach dem Temperaturwert erscheint? Wenn ich es beim ersten lcd_puts dahinter das C einsetze erscheint es vor den Temperaturwert.
wäre das eine möglichkeit?? lcd_puts("Temperatur:-----°C") --- als leerzeichen ersetzen
>wäre das eine möglichkeit?? > >lcd_puts("Temperatur:-----°C") Oh man ey. lcd_puts("Temperatur:-----"); lcd_putc(0xA0); // oder 0xDF lcd_putc('C'); oder lcd_puts("Temperatur:-----\xa0C"); oder lcd_puts("Temperatur:-----\xdfC"); Du brauchst dringend ein C Buch.
Hi >wäre das eine möglichkeit?? >lcd_puts("Temperatur:-----°C") >--- als leerzeichen ersetzen Nein. Das '°' in deinem String hat den ASCII-Wert 0xB0. Aber evtl. funktioniert das lcd_puts("Temperatur:-----",0xDF,"C"); MfG Spess
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.