-.-.- schrieb:> für was schöne Algorithmen?
Er meint damit Blinkmuster (Animationen).
Ich würde sowas nicht hart codieren, sondern über eine Tabelle im Flash
steuern, das ist flexibler.
Peter D. schrieb:> -.-.- schrieb:>> für was schöne Algorithmen?>> Er meint damit Blinkmuster (Animationen).>> Ich würde sowas nicht hart codieren, sondern über eine Tabelle im Flash> steuern, das ist flexibler.
Wie kann sowas dann aussehen im Beispiel an den Code von mir oben? Da
kommt doch sehr viel an Speicher zusammen, wenn ich jede Animation da
einzeln ablegen will.
Ich habe letztes Jahr WS2812 Weihnachtsbäumchen für die Kinder gebastelt
und bei der Entwicklung der Animationen festgestellt, dass man relativ
schnell selber auf ein Pattern kommt, dass auf konfigurierbare Weise
verschiedene Animationen ausspuckt.
Wenn man mal anfängt einen Farbwechsler zu machen, der über die LEDs die
Farben sanft wechselt und dann weitermacht die Geschwindigkeit und die
Steps für den Wechsel einzustellen und vielleicht noch weitere Parameter
einzuführen hat man innerhalb von ein paar Stunden einen Algorithmus,
der verschiedene Muster ausspuckt.
Und wenn man dann eine Logik einbaut, die diese Parameter mehr oder
weniger zufällig oder inkrementell weiterzählt/weiterrechnet, dann
wechseln sich ständig ähnliche Muster ab und es wird nicht langweilig.
> Da kommt doch sehr viel an Speicher zusammen
Ja, wenn man acht Bits verwendet, um die Werte 0 und 1 zu speichern.
Du kannst in einem Byte aber den Zustand für 8 LED's speichern. Dann
brauchst du nur noch 1/8 so viel Speicher.
Oder du nimmst ein Byte pro LED, aber das Byte stellt 8 aufeinander
folgende Schritte (Takte) dar.
Marion schrieb:> Wie kann sowas dann aussehen im Beispiel an den Code von mir oben? Da> kommt doch sehr viel an Speicher zusammen, wenn ich jede Animation da> einzeln ablegen will.
Klar kommt da was zusammen. Aber von nichts kommt nichts.
Im übrigen ist dein Beispiel ja von der simplen Sorte.
Im ersten Schritt sind alle LED der ersten Zeile auf 1, im 2. Schritt
alle der 2. ten Zeile und um 3. Schritt alle der 3.ten Zeile. Das kann
man mit vorgefertigten Mustern abhandlen, das kann man aber auch
ausprogrammieren.
Vorgefertigte Muster setzt man dann ein, wenn es kein einfaches Schema
gibt, wie man aus irgendwelchen Zahlen herleiten kann, wie die LED sein
müssen. In deinem Beispiel ist das Schama ja offensichtlich. Im Schritt
n sind die LED der Zeile n auf 1, alle anderen sind 0.
Aber selbst wenn man vorgefertigte Muster einsetzt, würde man das nicht
so machen, wie du das gemacht hast, sondern man definiert sich eben ein
komplettes Muster. In deinem Fall wäre das dann eben ein 3 dimensionales
Array. Warum denn nicht?
1
constuint8_tMuster1[3][3][3]=
2
{
3
{{1,1,1},{0,0,0},{0,0,0}},
4
{{0,0,0},{1,1,1},{0,0,0}},
5
{{0,0,0},{0,0,0},{1,1,1}}
6
};
Der erste Index ist die Schrittnummer und die restlichen beiden, na die
kennst du ja schon.