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
  Problem mit SD Card Library BennIY 4 197 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 212 22.08.2016 19:42
Letzter Beitrag: Eichner
  4x16 Tastermatrix Problem Michel 16 862 14.07.2016 10:02
Letzter Beitrag: StephanBuerger
  Problem mit Delay und Millis funnyzocker 1 463 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Problem mit ESP8266 und EMail senden torsten_156 1 611 13.06.2016 21:14
Letzter Beitrag: torsten_156
  ESP8266_01 flashen - Problem torsten_156 12 1.061 30.05.2016 20:12
Letzter Beitrag: torsten_156
  Hardwareserial/Softserial: Problem mit Superklasse tuxedo0801 10 484 19.05.2016 12:25
Letzter Beitrag: amithlon
  ESP8266 HTML Problem arduino_weatherstation 1 500 25.04.2016 21:52
Letzter Beitrag: rkuehle
  Problem mit OLED 0.96" Display torsten_156 3 547 03.04.2016 15:10
Letzter Beitrag: hotsystems
  Problem: SDFat - Das Ende einer Datei finden und Schleife beenden MartinK 4 490 01.04.2016 05:49
Letzter Beitrag: MartinK

Gehe zu:


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