[TEST] C-Berry - 3,5" TFT Display

  • Hallo,

    habe Probleme mit dem Display-Modul C-Berry und wheezy. Der Test des Display-Modul hat funktioniert. Nun würde ich gerne den HDMI-Ausgang und das Display-Modul gleichzeitig laufen/anzeigen lassen. Die Beschreibungen dazu im Netz sind mir leider etwas zu umfangreich für mein Zeitbudget. Wäre es möglich, dass mir jemand bitte eine superkurze Anleitung zur inbetriebnahme des Displays oder einen guten Link nennt? Ich möchte nur einen Terminal/Console auf dem Display-Modul anzeigen lassen und z.B. "top/htop" dort anzeigen lassen oder ähnliches und falls schnell möglich eben auch parallel den HDMI Ausgang für einen größeren Monitor nutzen. Danke

  • Hallo,

    buntter
    Leider gibt es wohl noch keinen Treiber um das Display als "Monitor" zu nutzen.
    Hoffentlich wird sich jemand erbarmen dafür zu sorgen denn der Hersteller tut
    das leider nicht.


    Ich habe die Beispiele hier aus dem Thema und vom Hersteller ausprobiert, alle liessen
    sich starten aber bei " mvg-parser-lcd-pi" erscheint nur welcome auf dem Display wenn
    der Befehl aus der readme ausgeführt wird. Woran könnte das liegen ?

    Das hier C-Berry mit Python ansteuern
    hat auch gut funktioniert.

    Sehr schön das es Leute gibt die ihre Ergebnisse mit allen teilen, für Laien in
    Programmierung wie mich ist das ein guter Weg um etwas dazu zu lernen, bitte
    veröffentlicht weiter eure Experimente oder fertigen Programme für das C-Berry
    Display. Das mit den DS1820 hört sich besonders interessant an :) wenn diese
    1-wire Sensoren laufen werden andere sicher auch kein Problem sein (Feuchte/Druck/...).
    Da könnte eine tolle Wetterstation bei rauskommen. Ein geniales Projekt wäre auch etwas
    mit einem SDR Empfänger (rtl-sdr), damit könnte z.B. ein Internetradio um analogen
    Empfang ergänzt werden aber auch ein "Funkscanner" mit super Display entstehen,
    oder ein z.B. pocsag Empfänger.

    Ist ein Lauftext möglich ? Da das kleine Rechteck aber schon so viel CPU braucht wohl
    eher nicht oder ? Kennt jemand info-beamer für den Pi ? Damit habe ich mal sowas
    gemacht, tolles Programm.

    Noch eine noob Frage, sorry, ich würde gerne eine Textdatei ausgeben, bisher
    schaffe ich es leider nur Text Zeile für Zeile einzutragen, es müsste also entweder
    ein automatischer Zeilenumbruch stattfinden oder ein vorhandener übernommen
    werden. Ist das halbwegs einfach möglich ? Mit dem info-beamer war ich soweit
    das man dem Pi SMS schicken konnte die als Lauftext angezeigt wurden, auf dem
    C-Berry würde es schon reichen wenn eine Textdatei auf dem Display angezeigt
    wird und die Anzeige sich aktualisiert wenn die Datei geändert wird.

    Mit freundlichen Grüßen

    Einmal editiert, zuletzt von erzich (1. Mai 2014 um 23:19)

  • buntter, also kurz zur Erklärung:
    das C-Berry Modul ist kein "normales" Display im Sinne eines per HDMI angeschlossenen Monitors. Es gibt keinen Treiber, um es direkt als "normales" Display für die Console oder einen X-Server zu nutzen.
    Momentan, kann das Display lediglich im userspace angesteuert werden, indem entsprechende Steuerbefehle und Daten über die GPIO Leitungen an den controller chip (SPI interface) geschickt werden. Ein Beispiel-Programm hierzu wird ja vom Hersteller mitgeliefert, aber ohne Erfahrung in C-Programmierung wird man damit nicht weit kommen.
    Nun aber das Gute, das LCD Modul läuft völlig unabhängig vom HDMI Ausgang des Rasperry Pis. Man kann also sowohl das LCD Modul und einen gewöhnlichen Monitor per HDMI problemlos parallel betreiben.

    Nun bleibt die Frage, was stellt man überhaupt mit diesem LCD Modul an?!

    Kurz gesagt, der Controller Chip auf dem Display kann Text und Graphik Primitive wie Linien, Rechtecke usw darstellen. Das ganze aber ziemlich flexibel und bequem. Der Controller unterstützt Cursor Funktionen, Laufschrift, Transparanz, zwei Unabhängige Layer, welche in verschiedenen Transparenz Stufen übereinander oder abwechselnd oder wie auch immer angezeigt werden können usw. Das alles in Hardware!
    Aber Welche Informationen und Wie man diese auf dem Modul entsprechend anordnet usw, kann eigentlich nur durch ein selbst-geschriebenes Programm sinnvoll erfolgen!

    Eine Allgemeine Nutzung ohne Programmierkenntnisse wäre aber bereits durch eine Sammlung an simplen stand-alone Programmen möglich, wie zB:
    1. Die StandardAusgabe (stdout) eines beliebigen Programms auf dem Display anzeigen (über eine "pipe" | )
    2. Ein Bild (BMP-Datei) auf dem Display anzeigen.
    Zusammen mit den handelsüblichen Methoden der Linux Shell könnte man somit die meisten Anwendungsfälle abdecken ohne Programmieren zu müssen.


    Genau diese Programme versuche ich in den nächsten Tagen hier im Forum bereitzustellen.
    Zudem habe ich eine C++ Implementierung des Hersteller Programms gechrieben, mit dem sich das Display bequem objekt-orientiert programmieren lässt. Ich liefere dann auch ein paar Beispiele mit, wie man die Funktionen des Controller Chips damit nutzen kann, so dass auch Programmiernanfänger recht schnell zurecht kommen sollten.


    erzich:
    Lauftext:
    Ja, Lauftext wird (laut Dokumentation des Controller Chips) direkt von der Hardware unterstützt. Ich schaue mir das morgen mal an, und integriere das dann in die Beispiele. Später wird dann noch ein Beispiel für den DS1820 folgen.

    Textanzeige:
    Ja, automatischer Zeilenumbruch wird ebenfalls vom Controller Chip bereitgestellt, wenn die Zeile (mit 40 Zeichen) voll ist. (wäre aber deaktivierbar). Manueller Zeilenumbruch kann man wahrscheinlich über das entsprechende Ascii-Steuerzeichen ('\n') erzeugen, ODER, man setzt "per Hand" die akutelle CursorPosition auf X=0, Y= Y+16. (Der eingebaute Font hat eine Größe von 8x16 pixel pro Zeichen).
    Auch hierfür werden dir meine Beispiele weiterhelfen..

    "mvg-parser-lcd-pi":
    Dieses Pprogramm war nie für eine Veröffentlichung angedacht, darum sind die Anweisungen in der README möglicherweise nicht vollständig oder fehlerhaft. Du kannst mir aber gerne eine private Nachricht schicken, dann kann ich dir weiterhelfen, wobei das Programm für die allermeisten Menschen wohl keinen Sinn haben wird ;)

    In Zukunft werde ich nur geprüfte und besser dokumentierte Programme hier veröffentlichen, was ja fast mehr Zeit in Anspruch nimmt, als das Programmieren selber... Darum bitte etwas Geduld, mache das ja rein privat und aus Spaß am basteln ;)


    Stay tuned...
    Thomas

  • Kurze Antwort, da ich gleich auf Arbeit muss:
    zum DS1820:
    schaut euch meinen Code an, da ist die Abfrage bereits drin.
    Der Code unterstützt mehrere DS1820.

  • Laufschrift ist leider doch nicht wirklich möglich !!

    Habe heute viel experimentiert mit der "Scroll" Funktion des Controller Chips. Es ist zwar möglich einen Bildschirmbereich zu scrollen, jedoch wird alles was zB links rauswandert pixelweise zwangsweise wieder rechts eingefügt. Daher ist es zB nicht möglich in der 40 Zeichen breiten Zeilen, einen Text mit zB 60 Zeichen per scrolling anzuzeigen.

    Man könnte bestenfalls den Text entsprechend umschreiben, in dem man den Text schrittweise ersetzt (Zeichen[0] = Zeichen[41] usw.), jedoch flackert dann zwangsweise das Zeichen am Rand, weil erstmal der alte text versetzt gezeichnet wird, und dann erneut überschrieben wird alle 8 pixel.

    Die einzige theoretische Lösung wäre es den Graphikspeicher direkt zu manipulieren, das Scrolling also per Software zu implementieren. Das kann ich jetzt aber nicht auf die Schnelle bewerkstelligen..

  • Vielen Dank für eure Antworten !


    Das icberry für die ds1820 ist habe ich jetzt auch begriffen :) und es sogar geschafft
    mit zwei Sensoren in Betrieb zu nehmen. Vor Monaten hab ich schonmal zwei davon
    angeschlossen gehabt ohne Probleme, heute leider erstmal zwei gekillt, einen davon
    gegrillt... einfach dumm...
    Dann hatte ich zum Glück noch zwei DS18B20U+, die sind schon recht klein, ohne zu
    bedenken das die mittleren Beinchen nicht angeschlossen sind war es nicht so einfach
    wie die "normalen" aber hat funktioniert.


    Ein Zeilenumbruch in dem Text aus example_WriteText hat leider nicht funktioniert,
    vielleicht verstehe ich nicht wie man \n richtig verwendet. Im ("im \n Text"), oder
    ("zwischen" \n "dem Text") vielleicht ?


    Die Ausgabe eines Programm/Befehl alle n Sekunden auf das Display wäre schon sehr
    gut, dann könnte man auch als Anfänger mit beliebigen bekannten Sachen arbeiten.
    Ich habe versucht einen fbcat "screenshot" auszugeben, mit ppmtobmp umgewandelt
    wird das Bild aber nicht angenommen, ein von GIMP exportiertes 320x240x24 .bmp
    wollte leider auch nicht, nur ein Tiger aus der google Bildersuche ging bisher :)
    Schade das nur ganz bestimmte .bmp akzeptiert werden und andere Formate garnicht.

    Was mir noch aufgefallen ist, bei den Sachen mit pygame, z.B. die Uhr, wird eine
    ramdisk genutzt. Daher ist zumindest an der LED keine Aktivität der SD Karte zu sehen,
    in den C Beispielen schon, wäre das ähnlich zu lösen ?


    Nochmal Danke und weiterhin viel Erfolg !

    Einmal editiert, zuletzt von erzich (2. Mai 2014 um 20:18)


  • Ein Zeilenumbruch in dem Text aus example_WriteText hat leider nicht funktioniert,
    vielleicht verstehe ich nicht wie man \n richtig verwendet. Im ("im \n Text"), oder
    ("zwischen" \n "dem Text") vielleicht ?

    welche zeile meinst du?
    hast du die aktuelle version die unter Projekten hier im forum zu finden ist?
    \n kommt nur bei printf rein und dass sollte ganz verschwunden sein aus dem code.

  • Vorab nochmal, ich bin ein "noob" :) , eine Textdatei über bash-scripte in
    die richtige Form zu bringen und mit Inhalt zu füllen ist kein Problem aber
    bei Programmierung hört es leider auf. Jedoch verstehe ich fertige Beispiele
    und kann sie auch ändern wenn sie nicht zu kompliziert sind und mir ist
    bewusst wie viele Stunden/Jahre man braucht um "aus dem Kopf" was zu
    schreiben.

    Mein Ziel ist eine vorhandene Textdatei auszugeben, example_WriteText
    bricht zwar die Zeilen aber nimmt keine Rücksicht auf Wörter/Leerzeichen,
    daher würde ich gerne die Umbrüche manuell einfügen. Ist das mit dem
    Beispielprogramm möglich ?


  • eine Textdatei über bash-scripte in die richtige Form zu bringen und mit Inhalt zu füllen ist kein Problem aber
    bei Programmierung hört es leider auf. Jedoch verstehe ich fertige Beispiele

    Ich arbeite gerade genau daran, eine Reihe an einfachen Code Beispielen zu liefern, die auch ohne Programmierkenntnisse zu verstehen und anzuwenden sind.
    Und, zusaetzlich plane ich ein fertiges Programm zu schreiben, dass die Ausgabe einer Textdatei oder stdin auf das Bildschirm schreibt. Ich bitte nur noch um etwas mehr Geduld. ;)


    example_WriteText bricht zwar die Zeilen aber nimmt keine Rücksicht auf Wörter/Leerzeichen,
    daher würde ich gerne die Umbrüche manuell einfügen. Ist das mit dem Beispielprogramm möglich ?

    Nein! Zuerst dachte ich dass der RAIO controller die ascii steuerzeichen wie '\n' und '\t' verarbeitet, aber nein, das tut er nicht. Der RAIO controller hat leider nur eine sehr simple logic fuer textausgabe:
    Alles was der RAIO macht, ist Byte fuer Byte einen Ascii-Character auf das Display schreiben, und dabei (by default) den textcursor entsprechend der Font-Groesse incrementiert, und bei erreichen der Display-Groesse (also rechter Rand) die Zeile umbricht, und zwar egal wo im Wort.
    Beispiel: Standardmaessig ist Ascii Tabelle 8859-1 aktiv, mit 8x16 px grossen Zeichen, und eine automatische Cursor Vorwaertssteuerung mit blindem Zeilenumbruch, also 40x15 Zeichen passen auf die ganze Display Seite (resolution 320x240 px).

    --> manuelle Zeilenumbrueche erfordern manuelles eingreifen, also manuelle steuerung der cursorposition

    --> habe nun den Display"Treiber" so modifiziert, dass diese Ascii Steuerzeichen '\n' und '\t' interpretiert werden, indem ich die automatische cursor vorwaertssteuerung deaktiviert habe im controller, und den cursor komplett selbst verwalte. Ich will diese Funktionen allerdings erstmal testen, bevor ich sie hier ins forum stelle.

    Mit meinem modifizierten Treiber ist es dann moeglich folgenden Aufruf zu taetigen: example_WriteText("Hallo \t World \nHow are you."), mit dem Ergebnis:
    Hallo World
    How are you.


    Cheers,
    Thomas


    Ich habe versucht einen fbcat "screenshot" auszugeben, mit ppmtobmp umgewandelt
    wird das Bild aber nicht angenommen, ein von GIMP exportiertes 320x240x24 .bmp
    wollte leider auch nicht, nur ein Tiger aus der google Bildersuche ging bisher :)
    Schade das nur ganz bestimmte .bmp akzeptiert werden und andere Formate garnicht.

    Ohne es genauer angeschaut zu haben, denke ich dass es an der Farbtiefe liegt! Versuche doch mal mit GIMP ein BMP in 320x240x16 zu exportieren, also 16 Bit = 65k Farben.
    Standardmaessig setzt der Treiber den 65K Modus (#define CM_65K).
    Alternativ kann das Display auch im 4K Modus betrieben werden, dann hat man dafuer 2 Layer und kann double-buffered animations nutzen oder andere schoene Sachen.


    Was mir noch aufgefallen ist, bei den Sachen mit pygame, z.B. die Uhr, wird eine
    ramdisk genutzt. Daher ist zumindest an der LED keine Aktivität der SD Karte zu sehen,
    in den C Beispielen schon, wäre das ähnlich zu lösen ?

    ?? Ich weiss nicht was du genau meinst. Was willst du wie loesen?

    Einmal editiert, zuletzt von ThomasG (5. Mai 2014 um 00:18)

  • Hallo,


    ich wollte nur nochmal den Grund für meine teilweise dummen Fragen darstellen,
    sicher nicht drängen :) und wünsche weiter viel Erfolg.

    Das mit den 40 Zeichen pro Reihe ist mir gestern auch aufgefallen, dieses blinde
    umbrechen war gemeint.

    Von GIMP erzeugte Bilder werden gleich ausführlicher getestet, ich war davon
    ausgegangen das 24bit verlangt wird da eine error Ausgabe in etwa lautete:
    "Its not 320x240x24". Aber wenn #define CM_65K Standard ist sollte es ja mit
    16bit funktionieren.

    Für python/pygame wird in dem Beispiel eine ramdisk genutzt wodurch die
    SD-Karte entlastet werden soll, wenn uhr.py läuft ist an der LED auch keine
    Aktivität zu sehen. Ob dieses Vorgehen sinnvoll oder nötig ist kann ich leider
    nicht beurteilen. Wenn etwa tft_test gestartet wird blinkt die Anzeige leicht
    im ca Sekundentakt.


    Nun noch meine Notlösung um einen sich ändernden Text zeitnah auf dem Display
    anzuzeigen, in diesem Fall SMS Nachrichten die von einem "UMTS-Stick"
    empfangen werden. Erstmal werden vier Dateien erzeugt, Alle Zeilen vor der
    mit dem Text und alle Zeilen danach, dazu den Anfang <<example_WriteText( ">>
    und das Ende <<" );>> der Zeile mit dem Text.
    Wenn eine SMS ankommt wird über "tail" die Zeile mit der Nachricht in eine weitere
    Datei kopiert, über "paste" wird die Einzelzeile mit dem Text zusammen gesetzt,
    danach über "cat" zwischen Teil1 und Teil2 des Programm gelegt und als tft_test.c
    im Programmordner gespeichert. Nun wird make ausgeführt und ./tft_test gestartet.
    Damit alles funktioniert gibt es zwei scripte, das eine zieht den Text aus der "roh-SMS"
    und das andere setzt tft_test.c zusammen und startet danach. Die scripte selbst
    werden über "iwatch" gestartet, wenn im sms incoming Verzeichnis geschrieben
    wird und wenn der dort gewonnene Text in seinem Verzeichnis abgelegt wird.
    Dazu wird noch die eingegangene SMS gelöscht sobald im Programmordner
    geschrieben wird, also wenn alles fertig verarbeitet ist. Den Absender und die
    Uhrzeit versuche ich noch auf die selbe Art einzufügen.


    Mit freundlichen Grüßen

  • Hallo,


    zu den Bildern:

    Weder mit der Linuxversion noch unter Windows mit GIMP erstellte Bilder
    werden bei mir angezeigt, was jedoch funktioniert hat ist das "Tigerbild",
    mit dem admatec bmp sollte aber wohl auf jeden Fall auch gehen,
    "auszuradieren" und dann mit neuem Inhalt zu füllen, bzw den Layer löschen
    und aus einem beliebigen 320x240 Bild einfügen. Dieses dann mit "speichern
    unter" (es war die Linux-version) als xyz.bmp speichern, dabei unter
    Optionen 24bit auswählen. Damit funktionierten alle Bilder aus dem Netz
    und selbst gezeichnetes, es darf aber wohl immer nur ein layer sein, daher
    vorher besser zusammenführen. Man muss zwar die Dateinamen anpassen
    und ein kompatibles Format haben, trotzdem lässt sich immerhin eine
    "Diashow" erstellen, bei vorhandener Internetverbindung könnte man also
    einfach die Dateien austauschen denn dafür muss ja nichts neu kompiliert
    werden. Wieder eine ganz dumme Frage: Wie muss ich das Beispiel von
    admatec ändern damit sich die ablaufenden Sachen wiederholen, eine
    Endlosschleife, so wie es ist bleibt am Ende ja immer die Sinuskurve.


    Der SMS Anzeiger läuft gut, auch wenn es bis auf die Anzeige nicht viel mit
    C zu tun hat :) aber immerhin eine realistische Anwendung für das C-Berry
    Display. Oben die Überschrift "letzte SMS Nachricht", darunter die SMS selbst,
    dann die Info über Absendernummer, Absendezeit und die Empfangszeit,
    darunter ist noch Platz für eine Zeile Text.


    icberry von tuxerli funktioniert auch gut, wenn man die "Grafik" etwas verändert
    ist es auch schon eine fertige Anwendung als "overkill hightech Thermometer" :)
    Habe den Text vergrößert, verschoben, eine Überschrift, Linien und unten kleine
    Fahnen eingefügt damit es bunter wird. Dazu hätte ich noch Fragen:

    In dem Beispiel ist example_WriteText in examples.c auskommentiert, ändert man
    dies gibt es einen Fehler. Ist es trotzdem möglich Text und Hintergrund farbig zu
    gestalten?

    Sind weitere 1-wire Sensoren bekannt die problemlos am Pi arbeiten ?
    Zum Beispiel Feuchte, Druck usw.


    Mit freundlichen Grüßen

  • erzich, freut mich dass dein Program zumindest rudimentaer am laufen ist :)
    Ich habe nun den TextModus meines neuen Treibers soweit fertig, dass ich auch denke ihn hier veröffentlichen zu können, wahrscheinlich heute abend. Muss noch ein paar beispiele sinnvoll zusammenstellen und es zusammen packen.
    Die allgemeinen Zeichenfunktionen funktioneren zusätzlich ganz normal, lassen sich mit meiner syntax aber leichter nutzen als im original treiber.
    Als nächstes kümmere ich mich dann um das BMP Problem. Und dann stelle ich ein paar stand-alone programme zuammen.

    kleiner tip für eine endlosschleife:
    while(true) {
     // alles was hier steht wiederholt sich unendlich
    }

    Die Sache mit der SD-Karte und der RAM disk hat nichts mit dem Display zu tun. Sobald man das Adamatec Demo Program, also das ./tft-test startet, wird es natuerlich von der SD-Karte geladen, da ja zB das BMP Bild erstmal eingelesen wird. Also nichts unerwartetes. Ansonsten greift das Progarm oder das Display nicht direkt auf die SD-Karte zu.[/color]

    Bis heute abend/nacht.

    Haha, ziemlich crazy !! Das ist wohl verrueckteste und komplizierteste Art etwas zu programmieren. Sau cool !!!

    Einmal editiert, zuletzt von ThomasG (5. Mai 2014 um 18:36)

  • Zitat

    Haha, ziemlich crazy !! Das ist wohl verrueckteste und komplizierteste Art etwas zu programmieren. Sau cool !!!

    :) Sorry mehr kann ich bisher nicht, jedoch liessen sich schon einige Sachen auf diese
    Art lösen für die sonst weitere Kenntnisse nötig gewesen wären. Es wirkt kompliziert
    aber ist sehr einfach zu verstehen und immerhin nutzt man mit den Standard Linux
    Befehlen sehr ausgereifte und absturzsichere "Programmteile" :)


    Ich habe es geschafft while anzuwenden, die Diashow läuft immer weiter und die
    Bilder lassen sich live austauschen, da das nur durch trial&error enstanden ist gibt
    es bestimmt noch eine einfachere Möglichkeit oder muss man so wie ich es
    gemacht habe jedes Bild einzeln aufrufen?

    tft_test.c

    examples.c


    Nun habe ich versucht die Bilderfolge mit dem SMS Anzeiger zu kombinieren was
    eigentlich auch gut funktioniert. Erst die Bilder je 5 Sekunden und dann 20 Sekunden
    der Bildschirm mit der Nachricht. Das läuft zwar auch weiter aber im zweiten
    Durchgang sind die Bilder verschoben bzw wenn man die reset Befehle mit in
    die Schleife nimmt in nur 4? Farben aber korrekt positioniert. Gibt es da noch einen
    anderen RAIO Befehl der das Display "resettet" ? Ohne den Text zwischendurch
    werden die Bilder immer richtig angezeigt.

  • NEU: C++ Treiber , Version 0.3
    lcd-driver-cpp_20140506_version_0.3.tar.gz

    Hallo Liebe Forumsleser,
    habe nun endlich mein erstes release des neuen C++ Treiber Pakets inklusive einiger Beispiele fertig gestellt. Die Beispiele sind auch als selbstlaufende Programme integriert, welche automatisch mitcompiliert werden und einige der Funktionen selbstlaufend erklaeren (siehe README/INSTALL). Der Treiber steht unter der GPL v3 Lizenz (COPYING).

    Dieser Treiber kann anstelle der originalen C Treibers benutzt werden und bietet zahlreiche Verbesserungen bzw. Vereinfachungen gegenueber dem originalen Treiber.
    Insbesondere ist der Text-Modus nun deutlich ausgebaut, und auch die Graphik-Funktionen lassen sich einfacher nutzen.
    Der Treiber ist in C++ geschrieben. Das Display laesst sich somit bequem ueber alle public methoden der RAIO8870 Klasse auf high-level Ebene nun steuern.

    Dem Paket liegen einige (ausfuehrliche) Beispiele und ein Grundgeruest bei, mit denen auch Nicht-Programmiere sofort ihre eigenen Programme erstellen koennen.
    Bitte liest zuerst die enthaltene README und INSTALL Dateien durch, welche alle Anweisungen enthalten.
    Ansonsten duerft ihr fleissig bug reports und sonstiges feedback hier posten.

    Happy Coding !
    Thomas


    p.s.: Der Treiber ist 'work-in-progress'. Noch sind nicht alle Funktionalitaeten implementiert...


  • Oh mann, ich trau mich kaum zu fragen..


    Dafuer ist das Forum ja da ;)


    Hab seit gestern ein C-Berry, 'tft-test' läuft. Wie beendet man die Anzeige wieder?


    Das laufende Programm kann tatsaechlich (wie immer) mit Strg-C beendet werden. Dabei bleibt dann aber der letzte Display zustand erhalten.

    Wenn du die Anzeige explizit ausschalten willst, dann musst du das explizit programmieren. Ich weiss grad nicht, was das tft-test.c am Ende fuer einen Befehl setzt. Aber du kannst das Display selbst "ausmachen", in dem du die Hintergrundbeleuchtung ausschaltest:

    am Ende des Programms, aber noch bevor bcm2835_close(); musst du ein RAIO_SetBacklightPWMValue(0); einfuegen.

    Du kannst auch eine nettes graduelles herunterfahren programmieren, ganz simpel zB mit:
    int i;
    for (i=50; i>0=; i--) {
    RAIO_SetBacklightPWMValue(i);
    delay(50);
    }


    Oder du benutzt meinen C++ Treiber (https://www.forum-raspberrypi.de/attachment.php?aid=3163). Dort wird das Backlight automatisch ausgeschalten, sobald das Programm zu Ende ist (und somit der Destruktor des RAIO8870 objects aufgerufen wird) ;)

    Einmal editiert, zuletzt von ThomasG (7. Mai 2014 um 10:26)

  • feature plan fuer die naechste Treiberversion:

    • inegrierte colorConversion. 24Bit-RGB -> 16Bit, 13Bit, 8 Bit. <-- erledigt
    • Bilder anzeigen: image format converter <-- ToDo

    aus unbekannten Gruenden, funktionert der BMP lesecode des orginal treibers bei mir nicht. Da ich aber beliebige farbige pixels, dank der fertigen colorConversion, setzen kann, muss ich "lediglich" einen eigenen import filter fuer BMP oder ander Bildformate schreiben. Dann hab ich es wenigstens selbst alles in der Hand und kann auch Erzich's Fragen zu seinen Bildanzeige Problemen beantworten.

    Einmal editiert, zuletzt von ThomasG (7. Mai 2014 um 12:13)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!