Pages: [1]   Go Down
Author Topic: Fehler  (Read 924 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi ich bin noch neuling und versuche mich derzeit an einfachen code `s nur häng ich jetzt schon ne weile an einem code fest!

kann mir eine sagen wo hier mein fehler liegt ? were klasse wenn ihn jemand findet und mir erklären könnte was ich ich zukunft anders machen muss ?

Code:
int led[4] = { 10,11,12,13};
int oldVal = 0;
int counter = 0;
int taster = 2;
void setup() {
  for (int i = 0; i<4; i++) {
  pinMode(led[i], OUTPUT);
  }
  void setLED(int ledNr) {
    for (int i = 0;i<4;i++) {
      if (i == ledNr) {
        digitalWrite(led[i], HIGH);
    }
    else {
      digitalWrite(led[i], LOW);
    }
  }
}
int setCounter(int counter) {
  if (counter == 3 {
    counter = 0;
  }
  else {
    counter++;
  }
  return counter;
}
void loop()
{
  int val = digitalRead(taster);
  if (val != oldVal && val == HIGH) {
    counter = setCounter();
    setLED(counter);
    delay(10);
  }
  oldVal = val;
}

lg dekat
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 234
Posts: 20181
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bitte ein bißchen Einsatz. Einfach den Code posten und sagen "da ist ein Fehler" geht nicht. Bitte erklähre was nicht geht und wie das Programm funktionieren sollte.
Grüße Uwe
Logged

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 2
Posts: 770
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Schätze, Du hast ein paar Klammerfehler: Nach der ersten FOR-Schleife fehlt eine "}", und nach dem "counter == 3" fehlt eine ")".

Oh, und beim "setCounter()"-Aufruf im loop() fehlt ein Parameter.
« Last Edit: November 18, 2010, 03:39:36 pm by Joghurt » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

sind 3 fehler die ich gefunden habe:

- void setup wird nicht geschlossen bevor du mit void setLed anfängst.
- irgendwo hat ne runde Klammer zu gefehlt
- und du rufst deine Funktion setCounter ohne Argument auf obwohl sie eins verlangt.

So kompiliert es:
Code:
int led[4] = { 10,11,12,13};
int oldVal = 0;
int counter = 0;
int taster = 2;
void setup() {
  for (int i = 0; i<4; i++) {
  pinMode(led[i], OUTPUT);
  }
}
  void setLED(int ledNr) {
    for (int i = 0;i<4;i++) {
      if (i == ledNr) {
        digitalWrite(led[i], HIGH);
    }
    else {
      digitalWrite(led[i], LOW);
    }
  }
}
int setCounter(int counter) {
  if (counter == 3 ){
    counter = 0;
  }
  else {
    counter++;
  }
  return counter;
}
void loop()
{
  int val = digitalRead(taster);
  if (val != oldVal && val == HIGH) {
    counter = setCounter(counter);
    setLED(counter);
    delay(10);
  }
  oldVal = val;
}

ich glaube so war es auch gedacht.

Jan

edit: doh, war zu spät

edit2: und Uwe hat recht, mir war nur grad langweilig.
« Last Edit: November 18, 2010, 03:41:20 pm by Lifthanger » Logged

Weinsberg, Germany
Offline Offline
God Member
*****
Karma: 2
Posts: 770
A Coder's Tale
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
edit2: und Uwe hat recht, mir war nur grad langweilig.
Dito.  ;D
Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 2
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


- void setup wird nicht geschlossen bevor du mit void setLed anfängst.
- irgendwo hat ne runde Klammer zu gefehlt

das kann net sein habe den code jetzt 1 zu 1 aus dem buch übertragen und da fehlt keine klammer

und zum lesten das war wohl mein fehler danke ^^
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 234
Posts: 20181
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Lifthanger und Joghurt
Und ich war zu faul zu versuchen das Programm zu analysieren.  smiley-wink

@dekat
Auch in Büchern sind Fehler; Murphys läßt grüßen.

Wenn Du mit dem Kursor im IDE eine Klammer markierst, siehst Du die dazugehörige Klammer angezeigt. So kannst Du sehen wo eine Klammer auf - bzw zu geht.

Beim Abschreiben verfehlt man sich schon mal und läßt was aus ecc.

Grüße Uwe
« Last Edit: November 18, 2010, 05:48:24 pm by uwefed » Logged

0
Offline Offline
Newbie
*
Karma: 0
Posts: 8
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

genau, in dem Fall steht das falsch im Buch. Wenn du eine Funktion innerhalb einer anderen deklarierst, dann platzt dem Compiler leider der Kopf. smiley

tut es denn jetzt was es sollte?
Logged

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dekat hat mich per PM kontaktiert, da er der Annahme war, dass ich der Autor dieses Codes bin.

Ich bin aber der Autor vom Buch "Arduino Praxiseinstieg". Soweit ich prüfen konnte, stammt der in diesem Thread besprochene Code aus dem O'Reilly-Buch "Arduino Physical Computing...".

Ich habe Dekat empfohlen den Code von der Buchwebsite runterzuladen.
http://arduinobuch.wordpress.com/downloads/

Gruss
Thomas
Logged

CH
Offline Offline
God Member
*****
Karma: 19
Posts: 703
Book Writer "Arduino Praxiseinstieg"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
sind 3 fehler die ich gefunden habe:

Genau, mit den von Lifthanger erwähnten Korrekturen, ist der Code compilierbar.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 234
Posts: 20181
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Auf die Interseite des Verlags zu schauen ist einen gute Idee; oft kann man da die Beispielprogramme gerunterladen und auch Fehlerkorrekturen finden.
Grüße Uwe
Logged

0
Offline Offline
Edison Member
*
Karma: 20
Posts: 1980
Wo ein Wille ist, da ist auch ein Weg !
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Kommentare  unter den Downloadlinks sprechen Bände für sich:
http://arduinobuch.wordpress.com/downloads/
Logged

Mein Arduino Projekte Blog:
http://ardu-megatank.blogspot.de/

Pages: [1]   Go Up
Jump to: