Günter G. schrieb:
> ja, im Code werden alle LEDs erstmal auf 0 gesetzt.
Okay, auch wenn ich die Verwendung von memset() erwägen würde. Oder
clearAll()? Zumindest klingt das so.
> Dann wird LED 30 und 31 hochgedimmt. Danach 29 und 32, da soll aber 30
> und 31 anbleiben, geht aber wieder aus.
Und dafür soviel Rumgeschwätze im Code?
Hättest du wie Karl-Heinz schon sagte ein Array von Strukturen, könntest
du auch das mit memset() erledigen. Und anstatt zwei Variablen
unabhängig voneinander zu zählen, könnte dir auffallen, das etwas wie
1 | for (i = 0; i < 30; ++i) {
|
2 | LEDPointer->Rot[30 - i] = ...
|
3 | LEDPointer->Rot[31 + i] = ...
|
4 | }
|
dein Ansinnen ohne jeden weiteren Kommentar und zweiten Blick
dokumentiert hätte.
> Bei 1 fange ich deshalb an, weil es bei den LEDs auch mit eins losgeht
> und ich diese Stolperfalle weghaben wollte.
Um dich nicht am Kaffee zu verbrennen, trinkst du ihn auch immer kalt?
Das ist doch Käse, mal davon abgesehen, dass du so pro Farbei ein Byte
(Index 0) verschwendest.
Apropos verschwenden: wieviel SRAM hat denn dein Controller? Passen da 3
mal 61 Byte plus Stack plus was noch alles im geheimen Restcode
verwendet wird rein? Oder wird vielleicht das Array durch eine der
unzähligen lokalen Variablen überschrieben - wobei die wegoptimiert
werden sollten, aber deine Compilerflags kennen wir ja auch nicht.