Da ich nur eine einzige LED ansteuern möchte, hätte ich die Funktion
gerne geändert. Ungefähr so: "update_led(uint8_t red, uint8_t green,
uint8_t blue)"
Ich habs jetzt schon ne Weile versucht, aber ich bekomme es einfach
nicht hin. Kenne mich mit Assembler leider überhaupt nicht aus.
Klar könnte ich die Funktion auch mit number_of_leds=1 aufrufen. Aber
ich würd ja gern wissen WIE das funktioniert :)
Ich hoffe mir kann jemand helfen. 😊
Also entweder übergibst du als 'number of leds' einfach immer eine 1 und
änderst sonst gar nix oder du entfernst die while schleife und rennst
nur einmal durch die Funktion.
Flo schrieb:> Aber> ich würd ja gern wissen WIE das funktioniert :)
Ist einfach nur die while Schleife. Der Rest ist bit schieben in ASM.
Aber das ist für dich eigentlich uninteressant.
Flo schrieb:> Ich habs jetzt schon ne Weile versucht, aber ich bekomme es einfach> nicht hin.
Wo klemmt es denn? Für welchen Rechner soll das sein? Was soll der Code
tun und was tut er stattdessen? Wie stellst du das fest?
Matthias S. schrieb:> Also entweder übergibst du als 'number of leds' einfach immer eine 1 und> änderst sonst gar nix oder du entfernst die while schleife und rennst> nur einmal durch die Funktion.
Ich würde aber auch gerne das "struct color"-Zeug loswerden.
Und außerdem - wie gesagt: Verstehen wie so was funktioniert ;)
Lothar M. schrieb:> Wo klemmt es denn? Für welchen Rechner soll das sein? Was soll der Code> tun und was tut er stattdessen? Wie stellst du das fest?
Der Code ist für einen ATXmega und soll WS2812B-LEDs ansteuern. Das tut
er auch ;)
Aber ich würde halt gerne die RGB-Werte direkt als uint8 (oder was auch
immer) direkt an den Assembler-Teil übergeben. Ohne den Umweg über die
color-struct 😅
Flo schrieb:> Ohne den Umweg über die> color-struct 😅
Wie du im ASM Teil siehst, ist das gar kein Umweg. Es reicht ein
einfaches hoch- und runterzählen von a0, um aufs struct zuzugreifen.
Matthias S. schrieb:> Flo schrieb:>> Ohne den Umweg über die>> color-struct 😅>> Wie du im ASM Teil siehst, ist das gar kein Umweg. Es reicht ein> einfaches hoch- und runterzählen von a0, um aufs struct zuzugreifen.
Er hat sich halt Code aus dem Netz geholt und versteht ihn nicht. Da
gibt es jetzt eigentlich nur 3 Wege die zum Ziel führen:
1. Er denkt sich selbst was aus
2. Er setzt sich auf Hosenboden, nimmt sich ein schlaues Buch und
arbeitet den Quellcode Schritt für Schritt durch. Ja das ist sehr
mühsam, aber es bildet durchaus.
3. Er bemüht die Suchmaschine seines Vertrauens, um anderen Code für
sein Problem bzw. der sein Problem besser abbildet zu finden. Ich denke
da wird man durchaus fündig.
Den Code den ein anderer gemacht hat zu verstehen, ist nicht immer ganz
einfach, da muß man ab und an schon viele bittere Pillen schlucken.
Gerade für einen Anfänger, wie der TO einer zu sein scheint, ist das oft
schwierig, weil der Profi die Probleme anders löst als ein Anfänger tun
würde.
OK.... Ich habe jetzt nochmal ein bisschen rumgespielt - jetzt
kompiliert er wenigstens mal ohne Fehler 😅
Kann aber leider gerade nicht ausprobieren, ob's auch läuft.
Sieht jetzt so aus: