ich besitze das tolle Touch-Display von Watterott. Es ist gigantisch zu erleben, wie sehr ein Projekt dadurch aufgewertet wird (Resultat der Iphone-Gesellschaft ).
Leider habe ich Probleme mit der Darstellung von Ascii-Zeichen, die im HEX-Format vorliegen.
Angenommen eine Variable "acsiizeichen" sei als byte deklariert. Dieser wird der Wert 0x41 zugeordnet.
Der Code:
liefert dann als Ergebnis den Buchstaben "A" im Serial Monitor, das Display zeigt aber "0" an. Die Ausgabe als Buchstabe fuktioniert also über die serielle Schnittstelle, auch ein 16x2-Display, welches ich zur Probe mal angeschlossen habe, gibt 0x41 als "A" aus. Nur das MI0283QT-2 scheint Probleme zu bereiten.
Ich nehme an, dass die Library des Displays Ursache für das sonst tolle Display ist. Ich nutze die Libraries, welche ich bei watterott.com unter der Version "mSD-Shield v0.10" finden konnte.
Kennt jemand von Euch eine Lösung für das Problem?
lcd.drawChar() funktioniert perfekt!
Der Befehl "lcd.drawInteger()" wird hingegen nicht akzeptiert.
Nun ist ein neues Problem aufgetreten: float-Werte können nicht auf dem Display ausgegeben werden.
Eine Variable "resultat" sei als Integer deklariert. Ich weise resultat den wert 2.5 zu (float resultat = 2.5).
Serial.print(resultat,2) gibt den Wert 2.50 im Serial Monitor aus.
lcd.drawChar(160, 80, (resultat, 2), 1, COLOR_BLACK, COLOR_WHITE) führt zu einem verrückten Zeichen auf dem Touch-Display.
Andreas, kennst du eine Lösung für dieses neue Problem?
drawInteger() gibt es erst ab Lib v0.11 und Float wird z.Z. nicht unterstützt. Floatvariablen kann man nur über z.B. sprintf() in eine Zeichenkette umwandeln und dann mit drawText() ausgeben.
Jetzt muss ich mich erstmal reinfuchsen, wie die sprintf()-Geschichte funktioniert. Das Ganze erscheint mir gar nicht mal so einfach.
Mal sehen, ob ich damit zurecht komme. Hoffentlich frisst die Stdio.h nicht zuviel Speicher.