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 Hochladen auf AtTiny45. Hilfe -.- Jonas Lindenblatt 17 799 16.04.2017 12:58
Letzter Beitrag: Jonas Lindenblatt
  ESP8622 - 01 sendet UDP - Problem WLan Kriskind 37 2.948 14.03.2017 19:49
Letzter Beitrag: Tommy56
  Smart Home Webserver Basic Authentication Problem Osotastic 21 764 20.02.2017 18:00
Letzter Beitrag: Tommy56
  Problem mit Sketch senden an Uno feuerwehr 5 586 31.01.2017 20:41
Letzter Beitrag: Tommy56
  Beim Hochladen USB Problem Nils 10 906 29.12.2016 21:05
Letzter Beitrag: renid55
  Problem mit SD Card Library BennIY 4 511 06.10.2016 18:38
Letzter Beitrag: Bitklopfer
  Problem mit SD.remove Eichner 6 383 22.08.2016 19:42
Letzter Beitrag: Eichner
  4x16 Tastermatrix Problem Michel 16 1.310 14.07.2016 10:02
Letzter Beitrag: StephanBuerger
  Problem mit Delay und Millis funnyzocker 1 760 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Problem mit ESP8266 und EMail senden torsten_156 1 1.131 13.06.2016 21:14
Letzter Beitrag: torsten_156

Gehe zu:


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