www.mikrocontroller.net

Forum: Compiler & IDEs Grafik LCD Bildausgabe


Autor: Deramon (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)

Autor: Deramon (Gast)
Datum:

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

Autor: Deramon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: ape (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Deramon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Deramon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.