Immer auf 12 zählen

Hi,

wieso funktionier folgendes nicht?

void loop() {
i=i++;
 if (i>12) {
    (i=0);
  } 
delay(1000);
}

er zählt immer:

1,2,3,4,5,6,7,8,9,10,11,12,02,12,22,32,42,52....

er soll aber immer von 1 bis 12 zählen.

Gruß

Ohhhhh.....
er hat richtig gezählt, nur überschreibt er das Display nicht....

Tipp: Wenn Du statt nem "clear()" hinter der Zahl ein Leerzeichen ausgibst hast Du das Problem nicht, und es flackert dabei auch nicht.
:wink:

Oder Du gibst bei Zahlen kleiner 10 vorher ein Leerzeichen aus und so bleibt die Einerstelle immer an der geleichen Stelle.
Grüße Uwe

Übrigens reicht anstelle von i=i++;einfachi++;i++ ist ja die (optimierte) Kurzform von i=i+1

Hi

Nicht nur var = var++ geht, sondern auch var +=, -=.... wert, funzt einwandfrei :slight_smile: Sehe das bei sehr vielen codes dass immer mit var = var + wert... verwendet wird^^

MFG, Robdeflop®

Daran erkennt man immer sofort die Programmieranfänger. Alteingesessene C Programmierer sind in der Regel schreibfaul.

i=++i>12?0:i;

Sorry, konnt ich mir jetzt nicht verkneifen :sunglasses:

Wobei es ja noch kürzer geht:

i=++i%13;

Hi

DANN bevorzuge ich aber eine klein wenig längere schreibweise, weil für mich alles ordentlich aussehen muss^^ Wenn ich nen längeren code habe, dann verhaspel ich mich durch solche faulheiten oft :smiley:
(obwohl ich zugeben muss dass ich mindestens so faul wäre das so zu schreiben wie du MaFu ::slight_smile: )

Ich denk nu aber wieder Back to Topic wa? ;D

MFG, Robdeflop®