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)
sry, hab ein Komma am Ende der Hexwerte im Array übersehen. Das muss natürlich raus.
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 ?
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...
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
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)
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.