Forum: Mikrocontroller und Digitale Elektronik char int unterschiedliches Verhalten von for-Schleife


von Johannes (menschenskind)


Lesenswert?

Ich habe folgenden Code:
1
  unsigned char i;
2
  
3
  for (i=3;i>=0;i--){
4
    SD_SEND(Argument[i]);
5
    LED_EVENT(1);
6
  }

So zuerst hatte ich diese Version, da blinkt meine "Debug"-LED die ganze 
Zeit, auch bei "char i;" und bei "unsigned int;".

Wenn ich die Deklaration aber durch "int i;" ersetze, dann blinkt sie 
genau 9 Mal.


Was läuft da intern verkehrt?

Danke euch

von Stefan E. (sternst)


Lesenswert?

Was bedeutet "unsigned"?
Was bedeutet das in Bezug auf ">=0"?

von Helmut L. (helmi1)


Lesenswert?

>unsigned char i;

>  for (i=3;i>=0;i--){
            ^^^^

i ist immer groesser gleich 0 also kann die Schleife nie abbrechen

Gruss Helmi

von Johannes (menschenskind)


Lesenswert?

Ok, dankesehr!
Hatte den Code woanders her kopiert und die Deklaration auf unsigned 
geändert, das war fatal...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.