jedoch versteh ich nicht, warum ich bis "position<=GROESSE_PWM_WERTE"
zählen muss, wenn ich HOCHZÄHLE.
eigentlich muss er doch solange zählen, bis die maximale Position
erreicht ist, und dann runter zählen, von der maximalen Position.
Bei mir ist es irgendwie katastrophal.
Selbst, wenn ich position=GROESSE_PWM_WERTE schreibe, also er solange
zählt, bis er ganz rechts angekommen ist, läuft garnichts mehr.
Wie im obrigen Code läuft alles einwandfrei, aber für mich nicht logisch
nachvollziehbar.
2. Frage: Wenn ich wie im Tutorial LED Fading ein const uint16_t in
const uint8_t bei den pwmtable umbennene, warum blinkt er dann zum
schluss beim hochzählen? Liegt das daran, dass er den Wert erst
umwandeln muss?
P.S. hatte in der Nacht wenig Schlaf, vielleicht habe ich was grobes
übersehen :/
hmm... bin mir nicht sicher was du meinst.
Tho Wes schrieb:> jedoch versteh ich nicht, warum ich bis "position<=GROESSE_PWM_WERTE"> zählen muss, wenn ich HOCHZÄHLE.
eigentlich musst du bis "position<GROESSE_PWM_WERTE" zählen. denn der
letzte eintrag im array steht an 28ster stelle und nicht an 29ster, weil
die indexe des arrays bei 0 anfangen zu zählen (nummerier mal die
einträge des arrays durch dann siehst du es)
wenn du also "position<=GROESSE_PWM_WERTE" schreibst greifst du bis
hinter dein array und da steht irgendeine zufallszahl drin
Tho Wes schrieb:> Selbst, wenn ich position=GROESSE_PWM_WERTE schreibe, also er solange> zählt, bis er ganz rechts angekommen ist, läuft garnichts mehr.
ja, die for schleife hört dann nie auf, denn dann gibt es keine
abbruchbedingung. die for schleife dreht ja so lange ihre runden bis
der ausdruck für die bedingung in "for(init;bedingung;zähle)" false
wird. und wenn du für die bedingung "position=GROESSE_PWM_WERTE"
schreibst, wird dieser ausdruck nie false.
Tho Wes schrieb:> 2. Frage:
korriegier mal den anfang... vielleicht tritt dann dieser blink fehler
nicht mehr auf
. Mit <= läufst du ja aus deinem Array raus.
2. Weil du mit dem <= aus dem Array rausläufst und dann irgendeine
undefinierte wert liest.
Probier's mal so innerhalb der while(1)-Schleife:
Eric B. schrieb:> Was Ch. Kim ausgelassen hat:position = GROESSE_PWM_WERTE ist nämlich> eine Zuweisung, kein Vergleich!
Das ist ja auch der Startwert, daher richtig.
Ja, danke euch beiden, bin geistig nichtmehr in der Lage eine FOR-
Schleife zu schreiben. (das mit den arrays habe ich auch sogar
nummeriert gehabt..)
hab die Bedingung umgedreht :x