Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,
ich hab eine erste brauchbare Version einer Bascom-Lib gebaut.
Unterstützt, Text und Grafikmodus.
Im Grafikmodus aber erstmal nur Pixel setzen, keine Zeichen oder Bilder usw. Ausgeben.
Im Anhang ist die Lib, ein TestProgramm, und wie das am LCD aussieht.
Liste der Anhänge anzeigen (Anzahl: 3)
Hallo,
heute gibts schon ein update, die Lib kann jetzt auch Zeichen schreiben.
Den Font gibts hier:
http://www.mikrocontroller.net/topic/156831#1599473
Wie kann ich Grafiken mit Bascom auf diesem Display anzeigen
Hallo Liebe user,
ich habe seit sonntag das display auch erfolgreich in Betrieb.
Touch funktioniert auch.
Jetzt habe ich hier gesehen, dass einige schon Grafiken von Bitmap2LCD auf dem Display anzeigen.
Ich arbeite mit Bascom und das noch nicht sehr lange.
Nun ist meine Frage, ob bereits jemand mit bascom grafiken angezeigt hat und wenn ja, ob er mir vielleicht etwas unter die arme greifen kann oder eventuell ein codebeispiel schicken.
Grüße
Andy
Darstellungsfehler im Textmodus in Sebastians Lib
Problem: Viel Text mit kleinem Zeichensatz darstellen
Hallo Sebastian und andere Displayprogrammierer
danke an alle hier im Forum, mit Eurer Hilfe habe ich auch mein Display
zum Laufen gebracht. Ich einen Atmega32 und Libs in C von Sebastian, die schön flott arbeiteten.
Folgendes fehlt noch zum letzten Glück: Ich möchte gerne viel Text
komprimiert auf dem GLCD ausgeben und einen 5x7 Zeichensatz verwenden.
Ich habe dazu je einen Lösungsansatz für den Textmodus und den
Grafikmodus, jeder natürlich jeder mit einem Problem, was sonst:
1) Textmodus + interner Zeichensatz, schön klein, spart Speicherplatz
Das funktioniert allerdings nur mir 20 Zeichen pro Zeile statt 26
möglichen und ist mir nicht dicht genug. Bei 26 Zeichen gibt es irgendwo
in der Mitte jeder Zeile Pixel die nicht angesprochen werden. Das
gleiche Problem wurde hier im Forum schon einmal mit Foto nachgefragt.
Man muss also die horizontal pitch und number of characters entsprechend
Datenblatt anpassen. Die Erklärung ist sicher, dass mit einer Hp von 8
und einer Pixelanzahl von 160 pro Zeile eben nur 20 Zeichen glatt
aufgehen. Sonst müsste man den LC7981 irgendwie überlisten, wie weiß ich
leider nicht.
So funktioniert es im Textmodus:
lcd_write_command(0x01,0x77); //Hp=8 stellt die pitch-Werte ein
lcd_write_command(0x02,20 - 1); //Anzahl Zeichen pro Zeile (minus 1)
Frage 1: hat jemand einen Tip, wie ich auch 26 Zeichen pro Zeile im
Textmodus fehlerfrei darstellen kann, 160/7 =26,6 das geht nicht auf!!
Textmodus so einstellen, aber das gibt besagte Fehler:
lcd_write_command(0x01,0x75); //Hp=6
lcd_write_command(0x02,26 - 1); //Anzahl Zeichen pro Zeile (minus 1)
2) Grafikmodus + selbst erstellter Zeichensatz 5x7
Das würde ja funktionieren, aber ich habe keinen freien
Zeichensatzgenerator und die verfügbaren Zeichensätze sind anders
kodiert als ich es brauche, nämlich SB last!!
Frage 2: Kann jemand einen Zeichensatzgenerator oder einen Zeichensatz
empfehlen?
Gruß Tom_W
Liste der Anhänge anzeigen (Anzahl: 4)
Fotos zu Zeichensatzproblemen
Hallo Sebastian,
herzlichen Danke für die schnelle Antwort. Habe mich heute einige Stunden mit den Problemen herumgeschlagen und ein paar Fotos gemacht, die ich hoffentlich gleich anhängen kann. Habe mich quasi empirisch dem Problem etwas genähert und ein paar Ausgaben mit unterschiedlichen Zeichensätzen gemacht und auch den Fehler im Textmodus fotografiert.
Foto 3: Bei deinem original verwendeten Zeichensatz gibt es leider auch Darstellungsfehler z.B. bei "h" und "r" - wie übrignes bei 4x6 -siehe unten- auch.
lcd_plot_text_P(0,30,PSTR("Feler bei"),8,8,font_8x8);
lcd_plot_text_P(20,40,PSTR("hhhhhrrrrr"),8,8,font_ 8x8);
Also da passt entweder der Zeichensatz nicht zur Ausgaberoutine oder die Ausgaberoutine verdreht etwas?
Foto 1 und 2 stellen zum Testen eine Tabelle dar mit dem Text "E3". Damit teste ich verschiedene x,y-Werte für den Textausgabebefehl im Grafikmodus:
lcd_plot_text_P(test*20-80,lauf*10-30,PSTR("E3"),x,y,font_5x8);
Die erste Zeile beginnt bei y=4, erste Spalte bei x=4, dann immer durchlaufend bis 10. Man kann erkennen bei welchen Werten der Text korekt dargestellt wird.
Foto 1: Der Zeichensatz 5x8 lässt sich mit 8,8 richtig darstellen.
Foto 2: Der Zeichensatz 4x6 stellt zwar "E3" zwei mal richtig dar, hat aber immer Fehler z.b. bei "r" und "h" wie bei deinem 8x8 :-(((
Selbst wen man endlich die Zeichen richtig darstellen kann, sind 8 Pixel Breite für einen 5 Pixel breiten Zeichensatz zu viel des Guten. Leider wird bei diesen winzigen Zeichensätzen immer Platz verschwendet und die Zeichen nicht so eng zusammengerückt wie es möglich wäre. Der 4x6 Zeichensatz ist aufgrund der Darstellungsfehler momentan unbrauchbar für mich - oder ich muss vielleicht die Buchstaben einzeln editieren ;-| Ich möchte gerne viel infos auf wenig Raum darstellen, Ziel ist nicht
erreicht.
Letztes Foto - Fehler im Textmodus:
Wie beschrieben, hier Fehler in der Mitte des LCD, Pixel werden nicht angesprochen.
Ich wollte zu allen aderen Problemen auch fragen, was macht eigentlich "lcd_write_text_P(const char *txt)"?
Danke schin einmal für deine Hilfe:-)
Gruß Tom.