Der T6963 und die Auflösungen

  • Für die mit T6963-Display, deren X-Auflösung nicht durch 6 teilbar ist, und die nicht auf die 0.0.5 warten wollen, folgen hier die nötigen Änderungen am 0.0.4 Treiber, damit diese Auflösungen auch funktionieren:


    Methode Init, Zeile 168:
    LowCommandWord(SET_GRAPHIC_AREA, iSizeX / 6);
    ändern in:
    if (iSizeX % 6 == 0)
    LowCommandWord(SET_GRAPHIC_AREA, iSizeX / 6);
    else
    LowCommandWord(SET_GRAPHIC_AREA, iSizeX / 6 + 1);


    Methode SetCursor, Zeile 211:
    addr = ((y * iSizeX) + x) / 6;
    ändern in:
    if (iSizeX % 6 == 0)
    addr = (y * (iSizeX / 6)) + x;
    else
    addr = (y * (iSizeX / 6 + 1)) + x;


    Methode Refresh, Zeile 335:
    addr = (y * iSizeX / 6) + x;
    ändern in:
    if (iSizeX % 6 == 0)
    addr = (y * (iSizeX / 6)) + x;
    else
    addr = (y * (iSizeX / 6 + 1)) + x;


    damit sollte es funktionieren, ich bitte um Feedback!


    MfG
    Andreas

  • Hallo powarman,


    habe deinen patch in graphlcd 0.0.4 integriert. Leider habe ich auf meinem TLX711A-E0 240x64 Display immer noch Pixelmüll. Genauso auf meinem 120x48er Display. Fontselect steht auf 6x8.
    Man kann nur mit viel Fantasie etwas erkennen.
    Habe noch Displays mit HD61830 und KS108B getestet - die laufen gut.


    Gruß
    Harald

    VDR 1.7 - DVB-S 1.3 - DVB-S 1.6 - DVB-S2 - Intel D820 -25,5 TB Plattenplatz - 19" Gehäuse - Graph.-LCD 240x128 - VDRburn mit DVD-RW - Clients: Reelbox Lite, Reelbox AVG, Netclient, Dreambox 5620, DBox2, MediaMVP, SMT-7020

    2 Mal editiert, zuletzt von heh5 ()

  • Zitat

    Original von powarman
    [patch]
    damit sollte es funktionieren, ich bitte um Feedback!


    Nach der Umstellung meines Displays (160x128 ) auf 6x8 Fontgröße und Einspielung des Patches sieht es schon viel besser aus. :) Was ich nicht sehe, ist die untere Hälfte der 128 Pixel.

  • Hallo powarman,


    hat leider etwas gedauert, bis ich zum Testen kam ... bin etwas im Stretch ...
    Habe gerade die Änderungen durchgeführt und bekam nur ein großes Senderlogo auf dem Display. Zwar cool, aber nicht das, was wir wollten :D


    Nach kurzer Analyse und Tests (bin nur Gelegenheitsprogrammierer ...) habe ich folgendes gefunden:



    Müsste wohl heissen:


    Zitat

    if (iSizeX % 6 == 0)
    addr = ((y * iSizeX) + x) / 6;
    else
    addr = ((y * iSizeX) + x) / (6 + 1);


    Dann klappts auch mit dem Nachbarn ähhh Display mit 128 x 64 ;)
    Scheint so, als ob Du Dich 'verkopiert' hast (unter Refresh steht nämlich das gleiche) ...


    Vielen Dank für die schnelle Abhilfe ... klappt suuper gut. 8)


    Ciao ...


    Baumix

  • Zitat


    addr = ((y * iSizeX) + x) / (6 + 1);


    also das ist komplett falsch, da dürfte garnix funktionieren, außer du hast einen 7x8 font


    richtig muss es heißen:
    if (iSizeX % 6 == 0)
    addr = (y * (iSizeX / 6)) + x / 6;
    else
    addr = (y * (iSizeX / 6 + 1)) + x / 6;


    Außerdem wird die SetCursor Methode sowohl vom Plugin als auch vom Treiber überhaupt nicht verwendet. Oder hast dus auch in der Refresh geändert?


    MfG


    Andreas

  • Zitat

    Original von powarman


    Außerdem wird die SetCursor Methode sowohl vom Plugin als auch vom Treiber überhaupt nicht verwendet. Oder hast dus auch in der Refresh geändert?


    Hallo powarman,


    hmmm ... in der Refresh habe ich Deine Änderungen 1:1 übernommen. Warum funktioniert es hier dann (es geht, kein Witz!)?


    Die Original-Zeile (216) lautet doch:


    addr = ((y * iSizeX) + x) / 6;


    Und in Deiner Modifikation heisst es dann:


    if (iSizeX % 6 == 0)
    addr = (y * (iSizeX / 6)) + x;


    Bin zwar kein Mathegenie (schon zu lange her), aber das ist doch definitiv was anderes ...


    Ich werde mir evtl. morgen die aktuelle Version von graphlcd installieren und mich dann wieder melden ...


    Ciao ...


    Baumix

  • Zitat


    Und in Deiner Modifikation heisst es dann:


    if (iSizeX % 6 == 0)
    addr = (y * (iSizeX / 6)) + x;


    das war auch falsch wie ich nach zweiter Überlegung festgestellt habe. In meinem letzten Posting ist es aber richtig.
    Aber wie gesagt spielt es eh keine Rolle, da die SetCursor nicht benutzt wird und nur als Altlast noch da mit drin steht.


    MfG
    powARman

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!