mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik do {} while Schleife


Autor: Michael H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>while ((adcval>48) and (adcval<52));

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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was mache ich nur wieder falsch

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

&& heißt das Ding...

Autor: Michael H. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke, ich denke noch zu sehr in Delphi  :)

Gruß
Michael

Autor: P. S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.