- 3D-Druck Einstieg und Tipps         
Seite 23 von 23 ErsteErste ... 13212223
Ergebnis 221 bis 229 von 229

Thema: Grafik LCD mit Touch

  1. #221
    Erfahrener Benutzer Begeisterter Techniker Avatar von .:Sebastian:.
    Registriert seit
    07.01.2006
    Ort
    Arkon I
    Beiträge
    203
    Anzeige

    LiFePo4 Akku selber bauen - Video
    Moin

    Nun ... ja ...
    Es sollte an sich kein großer Aufwand sein.
    Zumal man fast nichts umstellen müsste, wenn man ein paar Abstriche macht.

    Du kannst ja einfach hochkant zeichnen.
    Ob du jetzt eine X-Achse von links nach rechts oder von oben nach unten hast ist reine Definitionssache. (Name sind Schall und Rauch.)
    D.h. man müsste für eine vertikale Linie anstatt von 10,5 nach 50,5 einfach von 5,10 nach 5,50 malen.
    Dafür muss man am Grafikcode ja nichts ändern.


    Einzigster Knackpunkt sind die Fonts und die Bitmaps.

    Bitmaps :
    Die kann man auch einfach gedreht abspeichern.
    Sprich vorm konvertieren im Grafikprogramm entsprechend drehen.

    Oder du schreibt meine Bitmaproutine um (dafür musst du dich halt entsprechend ins den Controller vom Display einlesen um zu wissen welches Bit wo hin muss).
    Dann kannst du die selben Bitmaps in beiden Modi anzeigen.
    Dafür fällt mir ad hoc kein performanter weg ein, die dann beim Ausgeben in den Displayspeicher zu drehen.
    Was gehen könnte wäre Pixelweise zu Plotten (nicht wie im Moment Byteweise). Das wäre grob geschätzt um Faktor 8-10 langsamer.
    Immer 8 Pixel in einer Zeile sind 1Byte im Displayspeicher.
    Das kann man leider nicht Umstellen.

    Allergrößtes Problem sind die Fonts.
    Allerdings wenn du gedrehte Bitmaps hast (entweder Routine umgeschrieben oder gedreht im Grafikprogramm) musst du nur umstellen, dass die einzelnen Buchstaben in Y Richtung anstatt in X Richtung versetzt werden.
    Siehe lcd_plot_text().

    Also in Kurz :
    Möglichkeit 1 :
    Einfach gedrehte Bitmaps benutzen, beim Zeichnen X und Y tauschen.
    Perfomant, schnell umgestellt.
    Während dem Betrieb das Bild drehen nur möglich, wenn man alle Bitmaps 2 mal hat.

    Möglichkeit 2 :
    Bitmaps selber drehen.
    Beim Zeichnen auch nur X und Y tauschen.
    Langsam, eventuell der Overkill für den Controller, vermutlich ziemlich komplexer Code.
    Großer Implementierungsaufwand (zumal ich dir nicht aktiv helfen werden kann).
    Aber drehen im Laufenden Betrieb mit nur einem Satz Bitmaps möglich.

    Ich wäre für Möglichkeit 1.

    Aber wie gesagt ich würde mich an deiner Stelle mal in die Lowlevel-Funktionen des LC7981 einlesen, dann sollte sich dir die Problematik von alleine erschließen.

    Gruß
    Sebastian

  2. #222
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    Danke.

    Das mit den Bitmaps ist kein Problem, die kann ich drehen. Und ich brauch auch keinen wechsel von Hochkant nach Landscape.

    Doch wie genau sind denn die Fonts aufgebaut und wie kann ich die drehen? Oder gibts da nur die Möglichkeit den Code anzupassen?

    MfG
    C_Classic

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

    Also ... die Fonts wirst du dir selber neu erzeugen müssen.

    Für einen 16*12 Font wäre der Aufbau wie folgt :
    In einem Buchstaben sind die ersten 2 Bytes im Font (die ersten 16bit halt) sind die erste Zeile.
    Die nächsten 2Byte sind die nächste Zeile usw.
    D.h. ein Buchstabe besteht aus 24 Byte.
    Genau wie bei einem Bitmap auch.

    Jetzt brauch man für ASCII 256 Buchstaben.
    Die werden einfach hintereinander geschrieben.
    Also die ersten 24 Bytes sind für den ASCII-Wert 0 die nächsten für den ASCII-Wert 2 und so weiter bis 255.

    Eigentlich hast du 256 Bitmaps hintereinander geklatscht.
    Da musst du dann aber auch leere Bitmaps einfügen für nicht druckbare ASCII-Zeichen.

    D.h. Im einfachsten Fall machst du dir für alle Zeichen die du brauchst gedrehte Buchstabengrafiken.
    Dann konvertierst du die alle und schreibst sie hintereinander mit ein paar leeren Bitmaps zwischen drin (so dass sie an der richtigen Stelle liegen.)

    Du kannst aber auch versuchen ein Tool zu schreiben was dir die schon vorhandenen Fonts dreht.
    Ist nicht ganz einfach sollte aber machbar sein.

    Gruß
    Sebastian

  4. #224
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    Hallo,

    gibt mal wieder neues von meiner Lib. Es gibt nun 2 neue Controls: Ein Text-Eingabefeld und eine Quertz-Tastatur(50px hoch, 160px breit; y-offset einstellbar).
    Desweiteren gibt es ein paar Buxfixes - wobei bestimmt noch ein paar Neue dazugekommen sind. Die Geschwindigkeitsoptimierung habe ich noch nicht gemacht - habe ich jedoch demnächst vor, was dank den write/read_byte Befehlen einfacher geworden ist.

    Ich kopiere auch gleich mal das Makefile und einen Beispielsource für Tastatur und Textbox mit rein. Die Bibliothek muss in ./include/

    Das Hochkant-Projekt habe ich erstmal zurückgestellt.

    Somit viel Spaß beim Testen. (Denkt dran evtl. die Ports in der lcd.h zu ändern)

    Im Anhang auch noch 2 Bilder des Beispiels.
    MfG
    C_Classic

    PS: Da is noch ein Fehler im Beispielskript: Zeile 67 muss von char text[2]; auf char text[2]="-"; geändert werden
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken small.jpg   hallofoo.jpg  
    Angehängte Dateien Angehängte Dateien

  5. #225
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    Hi,

    habe jetzt auch H-Slider implementiert!

    Hier mal eine Übersicht der Features:
    Zeichenfunktionen (DrawFunctions)
    • Gefülltes Rechteck
      Rechteck
      Horiz. Linie
      Vertik. Linie
      freie Linie (langsamer)
      Kreis

    User-Interface(ui)
    • Buttons
      Bild-Buttons
      Check-Boxen
      Labels
      Horiz. Slider
      Vertik. Slider
      Fortschrittsanzeige (Balken)
      Textbox
      Tastatur (QWERTZ)


    TODO-LIST:
    • Verbesserung von DrawHorizontalLine (Ist zur Zeit seeeehhhhhr langsam)
      Nummern-Tastatur


    Was würdet ihr davon halten, wenn ich einen RN-WIKI-Eintrag zum LCD bzw. der Lib erstelle? Und soll ich die Lib dann in die Wiki oder bei SourceForge hochladen?

    MfG
    C_Classic
    Angehängte Dateien Angehängte Dateien

  6. #226
    Benutzer Stammmitglied
    Registriert seit
    17.01.2009
    Ort
    Kaiserslautern, Germany, Germany
    Alter
    35
    Beiträge
    77
    Hui,
    Lange hab ich keine Zeit gehabt mich mit meinem Hobby zu beschäftigen. Interessant was aus diesem Projekt hier geworden ist.


    Ich werde gleich mal alles testen!

    Ich fände es super wenn du nen Wiki Eintrag machst. Dafür ist er ja da. Am bessten mit Schaltplan und funktionen der Lib.

    Gruß
    Thomas

  7. #227
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    OK - werd ich machen! Wo soll ich den Code hosten. Gibt es da eine Möglichkeit, das in der Wiki zu machen oder soll ich SourceForge nehmen?

  8. #228
    Benutzer Stammmitglied
    Registriert seit
    17.01.2009
    Ort
    Kaiserslautern, Germany, Germany
    Alter
    35
    Beiträge
    77
    Hmm gute frage. Wenns nicht im Wiki geht nimm halt sourceforge!

  9. #229
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    01.05.2009
    Beiträge
    118
    So,
    hab jetzt mal den Wiki-Eintrag gemacht. Ist zwar wahrscheinlich noch net ganz fertig.
    Würde mich aber trotzdem mal freuen, wenn ihr mal drüberschauen könntet und am besten auch gleich die Lib probiert.
    Hier ist der Link: http://www.rn-wissen.de/index.php/DG16080_GLCD

    Auf der Projektseite (SourceForge - Link im Wiki) findet ihr jetzt auch Beispielcode für alle Elemente.

    MfG
    C_Classic

Seite 23 von 23 ErsteErste ... 13212223

Berechtigungen

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

12V Akku bauen