LedController
2.0.2
A library for the MAX7219 and the MAX7221 Led display drivers.
|
Schau auf die Seite des sakurajin::LedController für mehr Informationen über dessen Funktionen schau in die Beispiele.
Diese Seite beschreibt das Bewegen der angezeigten Daten und was man für die Nutzung der Funktionen wissen muss. Seit Version 2.0.0 beachten die Bewegungsfunktionen die Anzahl der Zeilen und Spalten und nutzen Rückgabewerte mit der richtigen Größe. Für mehr Details über mehrere Zeile schaue auf dieser Seite nach. Diese Anweisungen funktionieren nur richtig beim Verwenden einer Led Matrix!
Alle Versionen seit Version 1.5.0 unterstützen eine Form von Bewegungsfunktionen, aber diese Seite beschreibt wie diese Funktionen seit Version 2.0.0 funktionieren. Die als veraltet markierten Funktionen werden nicht erklärt und existieren nur, um den Umstieg auf Version 2.0.0 zu erleichtern. Wenn man diese Funktionen noch verwendet, sollte man anfangen zu den neuen Funktionen zu wechseln. Die veralteten Funktionen haben auch keine deutsche Beschreibung, um von der Verwendung weiter abzuraten.
Man kann die Daten in 4 Richtungen verschieben: hoch, runter, links und rechts. Man kann entweder alle Zeilen/Spalten oder nur eine einzelne Zeile/Spalte auf einmal verschieben.
sakurajin::LedController.moveRowLeft und sakurajin::LedController.moveRowRight bewegen eine einzelne Zeile nach links/rechts. Das benötigte Argument ist die Nummer, der Zeile, die bewegt werden soll und das byte welches reingeschoben werden soll. Die Funktion gibt das byte zurück, was rausgeschoben wird. Die bytes die rein- und rausgeschoben werden, haben das LSB (Least Significant bit, also die letzte Stelle) unten.
sakurajin::LedController.moveColumnUp und sakurajin::LedController.moveColumnDown bewegen eine einzelne Splate nach oben/unten. Das benötigte Argument ist die Nummer, der Spalte, die bewegt werden soll und das byte welches reingeschoben werden soll. Die Funktion gibt das byte zurück, was rausgeschoben wird. Die bytes die rein- und rausgeschoben werden, haben das LSB (Least Significant bit, also die letzte Stelle) rechts.
sakurajin::LedController.moveLeft und sakurajin::LedController.moveRight bewegen alle Zeilen einen Pixel nach links/rechts. Wenn nichts übergeben wird, wird 0 reingeschoben. Wenn Daten reingeschoben werden sollen muss das Parameter const sakurajin::ByteRow<rows>& shiftedInColumn
übergeben werden. Es ist eine sakurajin::ByteRow mit der Anzahl der Zeilen als Länge. In anderen Worten, bei einer Zeile ist der Datentyp sakurajin::ByteRow<1>
oder byte[1]
und wenn man 2 Zeilen hatist er sakurajin::ByteRow<2>
oder byte[2]
und so weiter. Index 0 der sakurajin::ByteRow entspricht der Spalte 0 der Matrix , in anderen Worten das Segment unten zuerst. Die Funktion gibt eine sakurajin::ByteRow mit der gleichen Länge wie die Eingabe zurück. Der Rückgabewert entspricht der Rausgeschobenen Splate.
sakurajin::LedController.moveUp und sakurajin::LedController.moveDown bewegen alle Splaten einen Pixel nach oben/unten. Wenn nichts übergeben wird, wird 0 reingeschoben. Wenn Daten reingeschoben werden sollen muss das Parameter const sakurajin::ByteRow<columns>& shiftedInColumn
übergeben werden. Es ist eine sakurajin::ByteRow mit der Anzahl der Splaten als Länge. In anderen Worten, bei einer Splate ist der Datentyp sakurajin::ByteRow<1>
oder byte[1]
und wenn man 2 Splaten hatist er sakurajin::ByteRow<2>
oder byte[2]
und so weiter. Index 0 der sakurajin::ByteRow entspricht der Zeile 0 der Matrix , in anderen Worten das Segment links zuerst. Die Funktion gibt eine sakurajin::ByteRow mit der gleichen Länge wie die Eingabe zurück. Der Rückgabewert entspricht der Rausgeschobenen Zeile.
Schaue Led-matrix-rocket-multi.ino an um zu sehen wie dies implementiert werden kann.