Hallo, ich arbeite momentan mit einem eDip160-7 Display. Die Ansteuerung erfolgt via SPI Interface. Dank des sehr guten Datenblattes mit vielen Beispielen, konnte ich auch schon die ersten ASCII Zeichen an das Display übertragen. Ich arbeite mit dem Display im ASCII-Modus. Ein Rätsel sind mir aber noch die Befehle für "Formfeed" , "Carriage Return" und "Linefeed". Aus dem Datenblatt (habe ich angehängt) geht hervor, dass diese Befehle ohne führende Escapesequenz gesendet werden. Die Codes lauten: Formfeed: ^L Carriage Return: ^M Linefeed: ^J In meinem C-Code schicke ich an das Display die folgende Zeichenfolge: char data_example[64]="#TP5,5,hallo1234^J"; Das Display zeigt dann bei Cursorposition (5,5) hallo1234^J. Das "^J" wird hier also mit angezeigt. Es sollte aber eigentlich bewirken, dass der Cursor in die nächste Zeile springt. Ich habe auch andere Varianten versucht, doch ich bekomme den Cursor nicht in die nächste Zeile gesetzt. Ich wäre euch sehr dankbar, wenn ihr mir hier mit einem kleinen Beispiel oder Tipps weiterhelfen könntet. Vielleicht bin ich ja einfach auch nicht in der Lage, dass Datenblatt richtig zu lesen. Grüße Markus
Du musst das Zeichen ^J senden. Das ist das Zeichen mit dem ASCII-Code in 0x0A hexadezimaler Darstellung bzw. in dezimaler Darstellung 10. http://www.torsten-horn.de/techdocs/ascii.htm In einen C-String direkt kannst du das mit einer Escape Sequenz einbetten. Hier ein \n oder ein \x0a (hex) oder ein \012 (oktal). Du wirst aber möglicherweise sehen, dass das nächste Zeichen danach nicht am Zeilenanfang ausgegeben wird. Dazu brauchst du zusätzlich das ^M
Bsp. char data_example[64]="#TP5,5,hallo1234\n"; oder mit zusätzlich ^M char data_example[64]="#TP5,5,hallo1234\r\n";
Hallo und danke für die Hilfe...hat bestens geklappt. Jetzt habe ich aber noch das Problem, dass Umlaute wie äöüß und z.B. das € Zeichen nicht richtig dargestellt werden. Dies sollte aber laut Datenblatt möglich sein. Interessant ist auch, dass wenn ich ein "ä" sende, das Display ein "ñ" anzeigt. Beim € erscheint dann "à". Vielleicht muss ich nochmal hinzufügen, dass ich unter Linux programmiere und als Compiler kommt der sdcc zum Zuge. PS: Mein Code-Editor ist Geany, welches mit UTF-8 codiert.
Markus M. schrieb: > Hallo und danke für die Hilfe...hat bestens geklappt. > > Jetzt habe ich aber noch das Problem, dass Umlaute wie äöüß und z.B. das > € Zeichen nicht richtig dargestellt werden. Dies sollte aber laut > Datenblatt möglich sein. Interessant ist auch, dass wenn ich ein "ä" > sende, das Display ein "ñ" anzeigt. Beim € erscheint dann "à". Das ist nicht wirklich ungewöhnlich. Verlassen kannst du dich eigentlich nur auf den 7-Bit ASCII Zeichensatz. Alles was darüber hinausgeht - macht jeder Hersteller so wie er will. Da finden sich dann alle möglichen Zeichen, inklusive japanische (zumindest sehen sie so aus), in den verbleibenden 128 möglichen Codes. Da wird dir nicht viel anderes übrig bleiben, als das deine String Ausgabefunktion einfach während der Ausgabe eine Zeichenersetzung vornimmt. Einfach jedes Zeichen vor der Ausgabe untersuchen. Hat es den Code x, dann schickst du stattdessen den Code y.
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.