Punktmatrixausgabe drehen

OP #4150659
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 ?
Gast #4150831
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).
#4150860
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren