Forum: Mikrocontroller und Digitale Elektronik do {} while Schleife


von Michael H. (Gast)


Lesenswert?

Moin

Sorry wenn das jetzt zu trivial ist, aber ich komme nicht auch die 
Lösung.
Ich habe hier eine do while Schleife die so aussieht:

do {
      _delay_ms(10);
      adcval = ReadChannel(0);
   }
while ((adcval>48) and (adcval<52));

Die Schleife soll solange wiederholt werden , solange adcval zwischen 49 
und 51 liegt.
Bereits beim compilieren bekomme ich aber einen Fehler:
expected ) befor end

aber auch andere "Versionen" sorgen für eine Fehlermeldung:
while (adcval>48 and adcval<52);
while (adcval>48) and (adcval<52);

adcval ist vom Typ: uint16_t

Was mache ich nur wieder falsch

Gruß
Michael

von holger (Gast)


Lesenswert?

>while ((adcval>48) and (adcval<52));

while ((adcval>48) && (adcval<52));

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

> Was mache ich nur wieder falsch

. du tippst Fehlermeldungen ab, statt sie zu kopieren
. du kannst kein C ;-)

&& heißt das Ding...

von Michael H. (Gast)


Lesenswert?

Danke, ich denke noch zu sehr in Delphi  :)

Gruß
Michael

von P. S. (Gast)


Lesenswert?

Ausserdem:

"Zwischen" heisst: while ((adcval>49) && (adcval<51));
"Zwischen einschliesslich" heisst: while ((adcval>=49) && (adcval<=51));

Ja, letzteres hat den gleichen Effekt wie deins - aber der Code 
entspricht viel mehr dem Gedanken.

Das ist wie bis 10 zaehlen, das kann ich mit for( int Wert = 1; Wert != 
11; Wert++); oder mit for( int Wert = 1; Wert <= 10; Wert++); erreichen. 
Das sind nur kleine Unterschiede, aber auch Details verbessern die 
Lesbarkeit.

von holger (Gast)


Lesenswert?

>Danke, ich denke noch zu sehr in Delphi  :)

Vieleicht tuts auch ein

#define and &&

Aber ich glaub ich mach mich lieber mal vom Acker ;)

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.