Grafik LCD Bildausgabe

Gast #177142
Hallo,
ich versuche zur Zeit ein Bild auf meinem 128x64 LCD auszugeben, komme
aber nicht so recht weiter :(
Ich benutze Avrlib von Procyon zum ansteuern des LCD und habe mit dem
Program bmp2lcd ein Testbild in ein Array umgewandelt und habe
scheinbar ein Problem das ganze richtig auszulesen. Ich will jeden hex
Wert bitweise vergleichen und dann entweder einen Punkt zeichnen oder
nicht.
Auschnitt aus dem Programm liegt als Anhang bei(das Array ist auf die
erste Zeile, also die ersten 128punkte reduziert)
Angehängte Dateien:
Gast #177144
Das einlesen des Strings klappt scheinbar. Das Problem liegt am 2^i
habe da was durcheinander gebracht, aber pow(2,i) funktioniert
irgendwie auch nicht :/
Hat jemand einen Tip ?
Gast #177145
also ^ verursacht in C keine potenzierung sondern ein exklusives oder
wenn ich mich gerade nicht täusche aber wozu der aufwand? eine zweier
Potenz bekommst du auch durch einfaches links schieben also statt 2^i
einfach 2<<i.
ansonsten kenn ich zwar das programm bmp2lcd nich wahrscheinlich werden
die daten aber nicht zeilenweise im array stehen sondern ein byte steht
jeweils für eine 8 pixel hohe spalte (eine page) das nächste byte für
die nächste page usw., so dass sich eine 8 pixel hohe zeile ergibt.
so ist nämlich auch der speicher dieser lcds organisiert.
daher wäre das einfachste die daten aus dem array direkt als datenbyte
an das lcd zu senden ich kenn die Procyon-Lib aber nich also keine
ahnung wie das da geht...
Gast #177146
Ich hab inzwischen ein paar bmp2c /bmp2lcd programme gefunden die immer
eine andere Ausgabe haben. Mit dem ich zur Zeit arbeite, hat einen
Zeilenweisen Aufbau. Werde mal die anderen Formate anschauen, die
warscheinlich den Aufbau wie du genannt hast benutzen.
das mit dem 2<<i werde ich mal testen, da das POW irgendwie merkwürdig
bei 2^0 reagiert:
pow(2,0) = 0  ???
pow(2,1) = 2
pow(2,2) = 4
pow(2,3) = 8
Gast #177147
mit 1<<i funktioniert der Zeilenaufbau und es ist um einiges schneller
als pow().
Die anderen BMP2LCD haben das format wie du oben genannt hast und die
Umsetzung ist wirklich um einiges einfacher... nur eine for schleife
zur Ausgabe und wieder etwas flotter :)
Ich bin im moment noch in der Arbeit. Falls ich von zu Hause heute auf
die Site komme, poste ich noch die 2 Lösungen hier im Forum(hatte
gestern keine Chance das Forum hier aufzurufen)
Gast #177148
Den Bug, daß in der avr-libc pow(N, 0) versehentlich 0,5 statt 1,0
ergeben hat, habe ich in den Sourcen am 17. Juli 2004 beseitigt.  Zwar
gibt es noch keine offizielle neue avr-libc Version seither, aber das
letzte WinAVR hat den Bugfix mit übernommen.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 22 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.