Forum: Compiler & IDEs Grafik LCD Bildausgabe


von Deramon (Gast)


Angehängte Dateien:

Lesenswert?

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)

von Deramon (Gast)


Lesenswert?

sry, hab ein Komma am Ende der Hexwerte im Array übersehen. Das muss
natürlich raus.

von Deramon (Gast)


Lesenswert?

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 ?

von ape (Gast)


Lesenswert?

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...

von Deramon (Gast)


Lesenswert?

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

von Deramon (Gast)


Lesenswert?

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)

von Jörg Wunsch (Gast)


Lesenswert?

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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.