Forum: Mikrocontroller und Digitale Elektronik Schleifenabfrage


von hans (Gast)


Lesenswert?

1
UInt8 *pu8Key;
2
3
while(*pu8Key != 'C' || *pu8Key != 'O'){
4
    
5
  KBD_Read(pu8Key);  
6
  
7
  xil_printf("%c\n",*pu8Key);
8
}

Hallo,

kann mir jemadn helfen warum die Schleife bei entsprechenden tastendruck 
(wird richtig erkannt) nicht beendet wird. ich denke es liegt an der 
abfrage. ich habe auch schon versucht die variable als volatile zu 
benutzen.

hans

von Peter (Gast)


Lesenswert?

*pu8Key != 'C' || *pu8Key != 'O'

du sagst damit wenn das zeichen ungleich 'C' oder ungleich '0' ist, das 
ist aber immer der Fall weil ein zeichen nicht gleichzeitig 'C' and '0' 
sein kann.

von ... (Gast)


Lesenswert?

>while(*pu8Key != 'C' || *pu8Key != 'O')

while((*pu8Key != 'C') && (*pu8Key != 'O')) ...

oder

while( ! ((*pu8Key == 'C') || (*pu8Key == 'O')) ) ...

nutzen.

Besser ist übrigens eine schwanzgesteuerte Schleife (do...while), u.U. 
wird die Funktion Read sonst nämlich gar nicht aufgerufen (je nach 
Inhalt der Variable). Großschreibung beachten bitte!

von hans (Gast)


Lesenswert?

danke brett vorm kopf gehabt

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.