Hi, bin am programmieren (AVR Studio 6 / ATtiny 84) und staune mal
wieder über den Compiler:
1 | if(Taste == up) Frequenz += Offset;
|
2 | if(Frequenz > 999999999999) Frequenz -= Offset;
|
3 | if(Taste == down) Frequenz -= Offset;
|
4 | if(Frequenz < 0) Frequenz += Offset;
|
Das war meine erste Version.
Diese zweite Version hier spart 124 Byte Programm Memory!!!
1 | if((Taste == up) && ((Frequenz + Offset) <= 999999999999)) Frequenz += Offset;
|
2 | if((Taste == down) && ((Frequenz - Offset) >= 0)) Frequenz -= Offset;
|
Kann es z.B. sein, das der Compiler das Zwischenergebnis
(Frequenz + Offset)
aus dem Vergleich für die Zuweisung += speichert?!