- fchao-Sinus-Wechselrichter AliExpress         
Seite 20 von 23 ErsteErste ... 101819202122 ... LetzteLetzte
Ergebnis 191 bis 200 von 229

Thema: Grafik LCD mit Touch

  1. #191
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Jetzt hab ich doch noch eine Frage: welche Anschlüsse der Touchfolie sind welche X/Y-Anschlüsse bzw. wie kann ich es rausfinden?

    MfG
    C_Classic

    PS: Gibt es eine Möglichkeit den Touchscreen in deiner Lib zu kalibrieren? Bei mir ist das ganz versetzt und mal zeichnet er zu weit unten, mal zu weit oben.
    Hast du irgendwelche Widerstände an den Pins?

    PPS: Müssten 150 Ohm sein, oder?
    Und noch was: Beim zeichnen von Bitmaps werden die bei mir in die Länge gezogen.(sind die Pixel rechteckig?) Ebenso kann ich keine 160x80 Bitmaps Zeichnen. Hast du ne Idee, woran das liegt? Problem gelöst: einfach width und height um 1 runtersetzen.
    Ach und noch was: Bei dem 8x8 Zeichnensatz gibt es Fehler (Striche Punkte über dem Zeichen) bei r und - vlt. auch bei mehr.

  2. #192
    Erfahrener Benutzer Begeisterter Techniker Avatar von .:Sebastian:.
    Registriert seit
    07.01.2006
    Ort
    Arkon I
    Beiträge
    203
    Moin Moin


    ARRRG: ich ahb mich an einen Satz von mir erinnert, der mir vor beginn dieses Projekts durch den Kopf ging: "Wetten, das Projekt funktioniert am Ende wieder wegen diesem sch**** Steckbrett nicht!" und wies aussieht hatte ich recht. (aber nach welchem Schaltplan?)
    Ich würde auf ein anderes Problem tippen.
    Irgendwas hardwareseitiges.
    Alle weiteren Kommentare verkneif ich mir jetzt mal.

    Zu Thema Fonts :
    Kann sein die sind nicht von mir.

    Zum Thema Touch :
    Die Anschlussbelegung verrät dir dein Ohmmeter.
    Die 150 Ohm könnten stimmen.
    Der toucht-teil gehört auch garnicht zur lib sondern ist nur als 'proof of concept'
    mit dabei, also weder dokumentiert noch ausreichend getestet.

    Kalibrieren geht über Zeile 54 und 83 in der touch.c.
    Lass dir einfach mal die normalen ADC werte anzeigen und, dann such dir das Minimum und Maximum raus und rechnes in Koordinaten um. (Mittelstufenmathematik)


    //Update :
    Ich hab mal die neuste Version von lib und doku hochgeladen.
    Es hat sich fast nix verändert, außer ein paar Kleinigkeiten und der Lizenz.
    Alle künftigen Versionen werden unter MPL statt GPL stehen.
    Warum könnt ihr auf meiner Seite nachlesen.
    http://sebastians-site.de/homepage/e...or-lc7981.html

    mfg
    Sebastian

  3. #193
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2007
    Beiträge
    7

    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

  4. #194
    Erfahrener Benutzer Begeisterter Techniker Avatar von .:Sebastian:.
    Registriert seit
    07.01.2006
    Ort
    Arkon I
    Beiträge
    203
    Moin Moin

    Also spontan hätte ich gesagt du kannst mal da nachsehen.
    http://www.mikrocontroller.net/topic/54860#1291943

    Aber da gibts nur 5x8 und 4x6 Fonts.

    Sonst wüsste ich jetzt spontan nix.

    Gruß
    Sebastian

  5. #195
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2007
    Beiträge
    7
    Hi Sebastian,
    danke für Deinen schnellen und spontanen Tip mit den Zeichensätzen. Genau die hatte ich dann heute auch noch entdeckt und die kleineren versucht einzubinden. Leider bis jetzt nur Zeichensalat auf dem Display. Die Zeichen müssen, um mit deiner routine richtig dargestellt zu werden, liegen und quasi nach links gekippt sein, richtig?

    Post mal meine wesentlichen Anpassungen zum Drüberschauen:

    FontDatei:
    const uint8_t font_5x8[] PROGMEM = {....

    Im Programm:
    extern const uint8_t font_5x8[] PROGMEM;
    lcd_plot_text_P(10,45,PSTR("einfach!!!"),5,8,font_ 5x;

    Habe mich noch nicht mit deiner Anzeigeroutine für die Zeichensätze beschäftigt. Die Zeichenhöhe und Breite sind ja im Befehl von entscheidender Bedeutung. Ist doch richtig, dass sie immer gleich oder größer dem Zeichen sein sollen. Mit verschiedenen Werten gibt's bei mir auch nur Salat Komme gerade nicht weiter.


    Hast du eine Lösung zum Fehler im Textmodus - in deiner Routine sind ja auch 26 zeichen eingestellt, geht bei mir nicht?

    Grüße, Tom.

  6. #196
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2007
    Beiträge
    7
    Hi Sebastian,
    danke für Deinen schnellen und spontanen Tip mit den Zeichensätzen. Genau die hatte ich dann heute auch noch entdeckt und die kleineren versucht einzubinden. Leider bis jetzt nur Zeichensalat auf dem Display. Die Zeichen müssen, um mit deiner routine richtig dargestellt zu werden, liegen und quasi nach links gekippt sein, richtig?

    Post mal meine wesentlichen Anpassungen zum Drüberschauen:

    FontDatei:
    const uint8_t font_5x8[] PROGMEM = {....

    Im Programm:
    extern const uint8_t font_5x8[] PROGMEM;
    lcd_plot_text_P(10,45,PSTR("einfach!!!"),5,8,font_ 5x;

    Habe mich noch nicht mit deiner Anzeigeroutine für die Zeichensätze beschäftigt. Die Zeichenhöhe und Breite sind ja im Befehl von entscheidender Bedeutung. Ist doch richtig, dass sie immer gleich oder größer dem Zeichen sein sollen. Mit verschiedenen Werten gibt's bei mir auch nur Salat Komme gerade nicht weiter.


    Hast du eine Lösung zum Fehler im Textmodus - in deiner Routine sind ja auch 26 zeichen eingestellt, geht bei mir nicht?

    Grüße, Tom.

  7. #197
    Erfahrener Benutzer Begeisterter Techniker Avatar von .:Sebastian:.
    Registriert seit
    07.01.2006
    Ort
    Arkon I
    Beiträge
    203
    Moin Moin

    Die Zeichen müssen, um mit deiner routine richtig dargestellt zu werden, liegen und quasi nach links gekippt sein, richtig?
    Äh nein ?
    Also im Prinzip ist es ganz einfach :
    Ich hab einen großen Haufen Speicher, da liegen die Buchstaben drin.
    Im Fall von 5x8 sollten sie so angeordnet sein :
    Die ersten 5bit sind die erste Zeile vom ersten Zeichen, die zweiten 5 die Zweite Zeile ... nach 8 Zeilen kommt die erste Zeile vom zweiten Zeichen.
    Die Zeilen sind so aufgebaut da ich sie 1:1 ans Display schicken kann.
    Sprich das least significant bit (LSB) ist das erste bit.
    Da kommt daher weil der jedes byte im Speicher sind ja 8 Pixel in einer Zeile.
    Wenn wir die jetzt von links nach rechts durchgehen kommt zuerst das LSB und dann am Ende das MSB.
    Siehe Datasheet für den lc7981 Tabelle auf Seite 15

    Da is für mich nix mit kippen erkennbar.
    Außer du hältst dein Display falschrum.


    Die Zeichenhöhe und Breite sind ja im Befehl von entscheidender Bedeutung. Ist doch richtig, dass sie immer gleich oder größer dem Zeichen sein sollen.
    Und das ist totaler Käse.
    Da die Größe benutzt wir um die entsprechenden bits im Speicher zu finden,
    sollte sie vllt. passen ?
    Siehe meine Erklärung oben.
    Wenn du da ein bit daneben liegst stimmen alle Offsets nimmer.
    Pixelsalat.
    Für 5x8 wäre der richtige Aufruf :
    lcd_plot_text_P(10,45,PSTR("einfach!!!"),4,7,font_ 5x;
    Wir zählen nämlich von 0 an.
    Siehe die Notizen zu lcd_plot_btimap in der Dokumentation.


    Es kann sein das dein 5x8 font so gepackt worden ist,
    dass ein zeichen 8 x 8 bit benutzt (sprich 3 bit überlänge).


    Das Problem im Textmodus kann ich grade, mangels Hardware, irgendwie nicht nach vollziehen.
    Müsste ich mir nacher mal einen Testaufbau zusammen löten und anchschauen,
    außer jemand hat ein Photo. (Und irgendwo einen ATmega32 ausbauen.)
    Weil soweit ich weiß ging der Textmodus bei mir relativ problemlos, kann aber sein dass ich da irgendwelche Seiteneffekte einfach ignoriert habe.

    Gruß
    Sebastian

  8. #198
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2007
    Beiträge
    7

    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_8x;
    lcd_plot_text_P(20,40,PSTR("hhhhhrrrrr"),8,8,font_ 8x;
    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_5x;

    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.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken textmodus_fehler.jpg   foto_03.jpg   foto_02.jpg   foto_01.jpg  

  9. #199
    Erfahrener Benutzer Begeisterter Techniker Avatar von .:Sebastian:.
    Registriert seit
    07.01.2006
    Ort
    Arkon I
    Beiträge
    203
    Moin Moin ....

    Tja also zu der Geschichte im Textmodus bin ich spotan ratlos.
    Zumal ich hier nichts reproduzieren kann.

    Fürl cd_write_text_P(const char *txt) sei an die Doku verwiesen.
    http://www.sebastians-site.de/hg_rep...55fdb0233757fb
    Textausgabe im Textmodus mit scrollen, wie in einem Unix terminal.

    Die Darstellungsfehler bei den Fonts hab ich so auch noch nicht gesehen.
    Das die alle so viel Platz mitbringen kommt daher, dass man sich normalerweise nicht wie ich die Mühe mit dem freien positionieren macht.
    Vllt. sollte ich mal eigene Fonts erzeugen/ein tool dazu schreiben.
    Wird aber sicher nix draus vor 2011.
    Es kann aber auch sein das meine Textausgabe irgendwie verbuggt ist.
    Ich wüsste aber nicht wo.

    Sieht so aus als wäre ich mal wieder an dem Punkt wo ich dir empfehlen würde auf eine andere Lib zu setzen.

    Gruß
    Sebastian

  10. #200
    Neuer Benutzer Öfters hier
    Registriert seit
    06.10.2007
    Beiträge
    7
    Hallo Sebastian,
    so schnell wollte ich nicht aufgeben. Das muss doch zu machen sein. Bin von Anfang an eigentlich begeistert gewesen von deiner Lib und habe mich nach einigem Rumprobieren dafür entschieden. Die Touchscreenroutinen arbeiten zuverlässig und die Grafik ist schnell, ich kann Bitmaps selbst erstellen und flott ausgeben. Es wäre nur schön, wenn du die Dinge irgendwie nachvollziehen könntest, die bei mir passieren, es sollte doch nicht an irgendeinem dummen Bug bei mir liegen?

    Der Textmodus arbeitet mit 20 Zeichen pro Zeile korrekt (Probeweise Colums mal auf 20 gesetzt, hp auf 8, das klappt). Der Fehler im Textmodus auf meinem Bild wurden auch schon mal bei mikrocontroller.net im Forum gepostet und jemand anders hat auch geschrieben, dass er es nur mit 20Z/Zeile hinbekommt. Auch die Lib für Bascom, die jemand in Assembler geschrieben hat, verwendet 20Z/ Zeile. Beim Testen heute hat sich, durch irgendeinen Umstand, den ich leider nicht nachvollziehen kann, die Ausgabe im Textmodus so verändert, dass in der Bildschirmmitte alles richtig war, der Text am Zeilenende jedoch gefehlt hat, Gott weiß warum, ich hatte eigentlich nur im Grafikmodus rumgespielt. Es muss also irgendwie gehen, nur wie? Der eingebaute Zeichensatz gefällt mir eigentlich am besten, wenn ich die Wahl hätte, würde ich den nehmen.

    Wenn ich das Datenblatt richtig verstanden habe, setzt der Controller im Textmodus den Cursor automatisch um horizontal pitch weiter. Dann müsste man evtl. dort den Gedanken ansetzen, damit richtig positioniert wird? Oder sollte man im Diplayspeicher an eine andere Stelle schreiben, damit der Text richtig erschreint? Oder liegt irgend ein anderer dummer Fehler nur bei mir vor, wenn die Fehler bei dir nicht auftauchen?

    Was sagen denn andere, die die Lib von dir benutzen, bei denen alles o.k. oder reizen sie die Möglichkeiten nicht aus?

    Gut Nacht, Tom.

Seite 20 von 23 ErsteErste ... 101819202122 ... LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress