if Abfragen mit AVR

Gast #1042062
Lesenswert?

Ich möchte zwei int-Werte miteinander vergleichen.
Allerdings überspringt AVR Studio die Abfrage immer.
1
int X=0x1f;
2
int Y=0x0f;
3
  
4
if (Y > X)
5
   {
6
      while(X--)
7
      {
8
         PORTA=PORTA+1;
9
      }
10
   }
11
else
12
   {
13
      while(Y--)
14
      {
15
         PORTA=PORTA+1;
16
      }
17
   }

Vll weiß ja jemand wo der Fehler liegt.
Bitte mit Code-Beispiel


PS: Ich habe schon das ganze Forum durchsucht allerding nichts 
gefunden,weswegen ich jetzt einfach poste.

Danke schonmal
Gast #1042398
Lesenswert?

Hallo,

Was soll eigentlich diese Zeile machen ???
1
while(Y--)

Soweit ich weiß wird innerhalb einer while-Anweisung ein Vergleich 
durchgeführt der nur WAHR oder FALSCH zurückliefert. Bei WAHR wird der 
nachfolgende Code ausgeführt, bei FALSCH wird er übersprungen.

Y-- entspricht aber Y = Y - 1 liefert somit einen Zahlenwert zurück. 
Keine Ahnung was der Compiler daraus macht! Vielleicht liegt hier ja 
dein Problem.

Aber ich lass mich gern eines besseren belehren.

Gruß
Reinhold

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren