Bin gerade dabei, den Larson Scanner / Knightrider soweit umzuschreiben. Habe jedoch das Problem, dass mit die Serielle Ausgabe negative Werte in der letzten for-Schleife ausgibt.
led kann die Werte von 0 bis (NUM_Leds-1) an.
Am einfachsten kann ich es an folgendem Beispiel zeigen
_ = Aus
= AN
o = AN
= AN
_ _ _ _ _ _ - - - - o + + + + _ _ _ _ _
Es ist ein Lauflicht, was hin und her läuft. Hierbei spiel die Led o den Mittelunkt. - sind leds die Links von o, und + sind Led die Rechts von o liegen.
Wenn nun led Richtung 0 läuft, können nicht alle - Leds dargestellt werden. Dann würde led - k < 0 sein und in ein falsches Array schreiben, was ich verhindern möchte. Gleiches gilt, wenn nun die Richtung NUM_LEDS - 1 lauft. Hier dürfen die Leds ebenfalls nicht überlaufen.
Das war der Fehler, scheinbar muss bei der Berechnung von einem uint und einem int, entweder in die Berechnung ein (signed) oder aber beide Variablen als signed (int) deklariert werden.