INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
UNO Compiler Problem ?
19.09.2014, 11:27
Beitrag #1
UNO Compiler Problem ?
Hallo,

bin neu hier und Arduino Anfänger. Ein Arbeitskollege hat mich angefixt und ich hab ein simples Projekt zur Bewässerung meiner Zimmerplanze gemacht.
Ich habe nur rudimentäre C-Erfahrung, bin aber aber recht fit in Excel-VBA.
Nun hab ich festgestellt, das eine simple "for"-Schleife scheinbar nicht innerhalb einer "if" oder "else"-Abfrage funktioniert.
Nicht dass der Compiler meckert, die Schleife wird schlicht und ergreifend nicht ausgeführt.
Eine "while"-Schleife an der selben Stelle funzt aber.
Sollte ich eine mögliche Forensuche übersehen haben, bitte ich um Nachsicht für die voreilige Frage ;-)

Gruß
Volker
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 11:46 (Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2014 11:46 von tito-t.)
Beitrag #2
RE: UNO Compiler Problem ?
Hallo,
doch, mit Sketch ( C/C++ ) geht das natürlich, du musst möglicherwesie nur die if - oder else- Blöcke ("Körper") in geschweifte Klammern setzen:

Code:
if (Bedingung) {
  //dann tue dies;
  //und das;
}
else {
  // dann tue was anderes;
  // z.B. zähle und addiere;
  for (int i=0; i<100; ++i) {int s=s+i;}
  // dann mach noch irgendwas;
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 12:36
Beitrag #3
RE: UNO Compiler Problem ?
(19.09.2014 11:27)Olter schrieb:  Nun hab ich festgestellt, das eine simple "for"-Schleife scheinbar nicht innerhalb einer "if" oder "else"-Abfrage funktioniert.
Nicht dass der Compiler meckert, die Schleife wird schlicht und ergreifend nicht ausgeführt.
Hi,
natürlich funktioniert eine for-Schleife auch innerhalb eines if- oder else-Blocks. Wahrscheinlich geht da was anderes schief. Stelle mal Deine beiden Coding-Varianten hier rein, dann kann Dir vielleicht jemand erklären, was da los ist.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 13:04
Beitrag #4
RE: UNO Compiler Problem ?
Hallo Thorsten,

hier der Codeabschnitt.
Ich hab geprüft: Else-Bedingung erfüllt, Schleifenabbruchbed. nicht. Trotzdem überspringt er die Schleife. Ich habe mit den Klammern experimentiert.
Anfangs nur hatte ich nur die äußeren, dann hab ich den Schleifeninhalt eingeklammert, dann noch die Schleife selber. Hat nicht gefruchtet. Der Kollege hat mir mir zus. rumgebastelt, es aber auch nicht hinbekommen.
Auch nicht nur mit einer "if"-Bedingung.

@tito-t
Eigentlich benutze ich den mitgelieferten Editor, Version weiß ich leider nicht.
Oder meintest Du was anderes?
.............
else
{
Serial.print("Wasser stop"); // Test, ob else erfüllt
Serial.print(count_showval); // Test, Schleifenbed.
{
for (count_showval = 0; count_showval > 10; count_showval++)
{
digitalWrite (led_green, 1);
delay(700);
digitalWrite (led_green, 0);
delay(300);
}
}
}
..................
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 13:31
Beitrag #5
RE: UNO Compiler Problem ?
Hi,
count_showval ist am Anfang 0 und 0 ist kleiner als 10. D.h. "count_showval > 10" ist schon am Anfang nicht erfüllt. Deshalb wird die Schleife nicht ausgeführt. Mit dem if/else hat das nichts zu tun.
Du willst wahrscheinlich das hier:
Code:
for (count_showval = 0; count_showval < 10; count_showval++)
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 13:46 (Dieser Beitrag wurde zuletzt bearbeitet: 19.09.2014 13:50 von tito-t.)
Beitrag #6
RE: UNO Compiler Problem ?
ich denke auch,
aber ohne kompletten Code (!!) zumindest für die gesamte if...else-Konstruktion kommt man da unter Umständen nicht weiter.
Die Tücken sind die verschachtelten Klammern un sogar auch gesetzte ";".

und noch ein Tipp, das hilft Fehler vermeiden, und deswegen gewöhnt man es sich am besten von Anfang an so an:
Inkremente ++ immer VOR die Variable setzen, also
++i
denn post-Inkrement, z.B.
i++
wird möglicherweise vom Compiler anders ausgeführt als man denkt. Wirkt sich aber nicht in diesem Fall aus. Wink

Der "Editor" ist allerdings nur das Textfeld, in das du schreibst - der Compiler, der den Text in Arduino-Code übersetzt ist das Entscheidende.
Mitgeliefert wird allerdings meist Sketch als IDE, die übersetzt deinen Code mit einem C/C++ Compiler.
Reine C oder reine C++ Compiler arbeiten da möglicherweise etwas "strenger" im einen oder anderen Fall.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 13:54
Beitrag #7
RE: UNO Compiler Problem ?
(19.09.2014 13:46)tito-t schrieb:  aber ohne kompletten Code (!!) zumindest für die gesamte if...else-Konstruktion kommt man da unter Umständen nicht weiter.
???
In dem Fall ist doch eigentlich alles klar...

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.09.2014, 13:56
Beitrag #8
RE: UNO Compiler Problem ?
dann ist ja gut, denn mir war es noch nicht restlos ohne jeden Zweifel klar.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
Question Problem beim seriellen Einlesen von RFID-Reader Bezel 5 201 05.11.2017 22:37
Letzter Beitrag: Tommy56
  NeoPixels: Sketch will nicht - Problem mit delay? Zabsi 5 403 22.08.2017 15:17
Letzter Beitrag: Tommy56
  Problem mit LSM 303 Snörb 1 272 22.08.2017 14:16
Letzter Beitrag: Snörb
  Problem mit externem Interrupt manfred474 13 1.033 13.08.2017 08:54
Letzter Beitrag: MicroBahner
  Problem mit Klassen GuaAck 4 422 09.08.2017 09:28
Letzter Beitrag: MicroBahner
  Compiler Warnungen fraju 6 577 04.08.2017 22:06
Letzter Beitrag: Tommy56
Question Problem mit TFT Sam217 8 780 20.07.2017 21:51
Letzter Beitrag: hotsystems
  Problem FastLED fliege_m 3 524 16.07.2017 16:56
Letzter Beitrag: Tommy56
  Compiler Fehler Harti 8 603 16.06.2017 17:51
Letzter Beitrag: Harti
Question Problem beim Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 1.450 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste