Danke für Deine Antwort, Jarny. Ja, die existierende Implementation hat definitiv Optimierungspotential.
Ich frage mich, ob es nicht einen besseren Designansatz gibt, v.a. wenn man genug RAM übrig hat.
Z.B. denke ich darüber nach, jedes Bit in einem ganzen Byte zu speichern, welche man sehr schnell (und direkt) handlen kann und erst am Ende aller Read/Write Operationen diesen Buffer wieder auf 1/8 zu komprimieren und zum Display zu schicken.
Da könnte man die Byteblöcke mit einer getunten memcopy Funktion bearbeiten (welche FastLED dabeihat). Also nur zeilenweise die 2 Startadressen (Quelle und Ziel) berechnen und dann x Bytes von A nach B kopieren.
Ich vermute, das spart erheblich Zeit, v.a. wenn man viel Kleinkram liest/schreibt. Was denkst Du darüber?
Das Problem beim "freien" Kopieren ist ja tatsächlich, dass man eine geschachtelte Schleife fürs Lesen UND fürs Schreiben braucht und jedesmal das "bitweise oder" drin hat.
Grüße,
Helmuth