Urs wrote:
> Wir wissen nur, dass Du einen AVR, drei Leuchtdioden und anscheinend
> auch irgendwo noch einen Taster hast. Aber ohne zu wissen, wie die
> miteinander jetzt genau verbunden sind kann man Deine Frage leider nicht
> beantworten.
@Martin
.... wobei dieses
1 | if(PINB & (1<<PIN0)&& PWM_R++ < 255) PWM_R++;
|
wenn es denn noch nicht korrigiert wurde, dazu führen wird, das PWM_R
(falls das noch immer ein int ist) größer als 255 werden kann.
wohingegen die Gegenrichtung
1 | if(PINB & (1<<PIN1)&& PWM_R++ > 0) PWM_R--;
|
im Grunde nur Zeitverschwendung ist, den PWM_R wird am Ende unverändert
bleiben.
PS: Die Analyse, wie diese Vergleiche tatsächlich ausgewertet werden,
spar ich mir jetzt. Ist mir zu mühsam da jetzt rauszusuchen, ob der
Compiler die Klammerung der Ausdrücke auch so sieht wie du. Ich hätt
halt alles klar gemacht, indem ich explizit ein paar Klammern eingefügt
hätte. Nicht nur für den Compiler sondern auch für mich. Ist einfach
simpler zu lesen, wenn man nicht gross nachdenken muss, welche Operation
jetzt höhere Priorität hat: & && oder > und in welcher Reihenfolge die
Auswertung passiert.
Aber letztendlich ist das alles Kaffeesatzleserei. Das einzige was man
mit einiger Sicherheit sagen kann: Du hast einen Fehler im Programm.
Aber worin der Fehler jetzt besteht lässt sich ohne Programm in seiner
jetzigen Form nicht sagen.