Forum: Mikrocontroller und Digitale Elektronik Punktmatrixausgabe drehen


von Holger B. (rst-el)


Lesenswert?

Hallo,
ich habe ein 16x16 LED - Punktmatrixfeld, auf welchem ich verschiedene 
Infos ausgebe. Die Ausgabe erfolgt, in dem jede 1 msec eine Zeile 
angesteuert wird, der "Spaltenwert" für die jeweilige Zeile des 
entsprechenden Zeichens wird aus einer Tabelle geholt.

Ein Minus-Zeichen sieht beispielsweise folgendermaßen aus:

//Zeile0, Zeile1, ..

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0 
x00,0x00},//  0x2D   '-'

-> Zeichen wird an der 12. LED-Zeile (von oben) ausgegeben.

Für einige Anwendungen wäre es hilfreich, wenn die Anzeige um 90° 
gedreht werden könnte. Hierfür müßte ich die Daten in der Tabelle 
entsprechend konvertieren, sodaß z.B. aus dem Minuszeichen ein 
vertikaler Strich wird.

Hat jemand eine Idee diesbezüglich - gibt es vielleicht entsprechende 
Algorithmen für eine solche Drehung ?

von Mathematiker (Gast)


Lesenswert?

http://de.wikipedia.org/wiki/Drehmatrix

bei 90° vereinfacht sich die Sache dann erheblich, also mal 
"angestaubtes" Schulwissen rauskramen...

von Max D. (max_d78)


Lesenswert?

Also wenn du Zugriff hast auf den Code der die Matrix anspricht, dann 
vertausch einfach die beiden Zähler über Spalten und Zeilen....

von Joe F. (easylife)


Lesenswert?

In deinem Array steht ein 8x16 Zeichen.
Wenn du das "drehst", kommt ein Array mit 8 Einträgen à 16-bit raus.

Mit einer reinen Änderung des Array-Inhaltes wird es also nicht getan 
sein.

von foo (Gast)


Lesenswert?

Max D. schrieb:
> Also wenn du Zugriff hast auf den Code der die Matrix anspricht,
> dann
> vertausch einfach die beiden Zähler über Spalten und Zeilen....

Das allein spiegelt nur um die Diagonale. Um das Bild noch zu drehen, 
durchläuft man dann noch eine der beiden Schleifen rückwärts (welche, 
hängt von der gewünschten Richtung ab).

von Falk B. (falk)


Lesenswert?

@ Holger B. (rst-el)

>gedreht werden könnte. Hierfür müßte ich die Daten in der Tabelle
>entsprechend konvertieren, sodaß z.B. aus dem Minuszeichen ein
>vertikaler Strich wird.

Dazu braucht man Bitmanipulation.
Oder man legt gleich einen vollständig gedrehten Zeichensatz im Flash 
ab.

>Hat jemand eine Idee diesbezüglich - gibt es vielleicht entsprechende
>Algorithmen für eine solche Drehung ?

Ist quasi das Transponieren einer Matrix. Sinnvollerweise macht man das 
nicht im Multiplexing, weil es zu rechenintensiv ist. Besser ist es, das 
offline zu machen, spricht, deinen Puffer für die Matrixausgabe 
entprechend zu füllen.

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Die gleiche Fingerübung nochmal, jetzt ohne Fehler in der Bitmaske...

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.