@uwefed: Die Lib von Sparkfun habe ich selbst umgeschrieben, durch die Verwendung eines HC595 mit den TLCs klappt das mit dem synchronen Umschalten einwandfrei. Meine Testmatrix arbeitet ja stabil.
Die Lib von GrumpyMike war die Vorlage/Inspiration für meinen eigenen "Hack". Hat aber nicht so richtig auf meine Bedürfnisse gepasst, daher hab ich selbst Hand angelegt.
Teensy ist ne Idee, aber auch ziemlich teuer... o0
Kannst Du was zur Programmierung der Timer bei dem Teil sagen?
Funktioniert das ähnlich wie bei den ATMega-basierten Arduinos? Bisher habe ich um die ARMs immer nen Bogen gemacht weil sie von der Hardware her doch deutlich komplexer sind als die ATMegas...
Ansonsten liebäugele ich derzeit mit nem ESP32.
Der scheint ziemlich flexible PWM Möglichkeiten zu besitzen, nur wie genau man das Latch mit dem Blank synchronisieren könnte sehe ich noch nicht...
Edit: Über WS2812 habe ich auch schon nachgedacht, hat für mich aber verschiedene Nachteile:
- Das Timing ist ziemlich haarig, ob ich da überhaupt 512 LEDs in Reihe kriege weiß ich nicht.
- Die LEDs sind auch bei direkter Bestellung in China relativ teuer.
- Ich muss immernoch große Mengen an Daten schaufeln...
@Doc_Arduino: Genau das ist mein Problem bei den ATMegas: Mit der Standard Arduino SPI.send() Methode blockieren sie bis das komplette Byte gesendet ist.
Ich weiß, dass man das SPI-Sende auch in einen Interrupt verlegen kann der beim kompletten versenden eines Bytes aufgerufen wird, ich bin aber nicht sicher ob sich der Aufwand überhaupt lohnt.
Der Aufruf des Interruptvektors braucht ja auch schon einige Takte und ich befürchte, dass man damit unterm Strich langsamer fährt als wenn man auf das Ende des Sendevorgangs wartet, zumindest bei maximaler SPI-Geschwindigkeit.
Edit: Den Code zum raustakten mit dem Code für die Effekte zu verweben würde nicht funktionieren. Das müsste für jeden Effekt separat gemacht werden, dazu kommen noch unterschiedliche Geschwindigkeiten der Effekte usw. usf. - theoretisch vllt. machbar, praktisch aber ein absoluter Albtraum.