Finde den Fehler nicht, ganz kurzes Programm

vor 24 weeks 2 days von Andreas

Hi Leute,

ich habe diese Bspl. aus einem Buch und bekomme beim Übertragen immer die Fehlermeldung, siehe unten und weiß echt nicht wo der Fehler ist. Kann da bitte mal einer kurz drüberschauen!? Ach ja, falls es wichtig ist ich benutze zur Zeit die/den Arduino Duemilanove.

Schinmal schönen Dank im Vorraus

Andreas

int ledPin = 10;

void setup (){
pinMode(13, OUTPUT);
int counter = 0;
int changeMarker = 1;
int changeCounter(){
if (counter == 255){changeMarker = -1;} <---- Fehler?
if (counter == 0) {changeMarker = 1;} <---- Fehler?
counter = counter + changeMarker;
return counter;
}
}

void loop(){
counter = changeCounter();
analogWrite(led, counter);
delay(10)
}

bsp2_buch_funzt_nicht.cpp: In function 'void setup()':
bsp2_buch_funzt_nicht:7: error: a function-definition is not allowed here before '{' token
bsp2_buch_funzt_nicht:19: error: expected `}' at end of input

Ich glaube ich habs. Werde es gleich Zuhause prüfen. Hoffe ich liege richtig ;-)):

Ähnliche Posts

3 Antworten auf “Finde den Fehler nicht, ganz kurzes Programm”


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
  1. uwe sagt:

    Hallo Andreas
    da sind mehrere Fehler.
    1) Du kannst keine Funktion innerhalb eine Funktion definieren:
    "int changeCounter()" muß außerhalb "setup()" sein.
    2) Variablen die innerhalb eine Funktion definiert wurden existieren nur in diesen, nicht außerhalb oder in anderen Funktionen.
    int counter = 1;
    int changeMarker = 1;
    müssen außerhalb des setup() definiert werden.
    3) analogWrite() ist die Variable für das Pin ledPin nicht led;
    4) bei delay(10) fehlt der Strichpunkt.

    Vereinfachung:
    statt
    if (counter == 255){changeMarker = -1;} <---- Fehler?
    if (counter == 0) {changeMarker = 1;} <---- Fehler?

    geht auch
    if (counter == 255 || counter == 0)changeMarker *= -1;
    so werden auch etwahige (unmögliche) Überläufe abgefangen.

    Der ganze Kode: ( bei meniem Kode muß Counter bei 1 anfangen.)

    byte ledPin = 10;
    byte counter = 1;
    int changeMarker = 1;
     
    void setup (){
    pinMode(13, OUTPUT);
    }
     
    void loop(){
    counter = changeCounter();
    analogWrite(ledPin, counter);
    delay(10);
    }
     
    int changeCounter(){
    if (counter == 255 || counter == 0)changeMarker *= -1;
    counter = counter + changeMarker;
    return counter;
    }

    Login or register to post comments

  1. Andreas sagt:

    Hallo Uwe,

    Danke für deine Mühe. Ich werde morgen mal prüfen, ob ich zu blöd zum Abschreiben bin, oder der Author zu blöd das Programm richtig zu schreiben. Aber wie gesagt ich werde es morgen nachprüfen. Ich melde mich dann wieder, so oder so ;-)).

    Grüße

    Andreas

    Login or register to post comments

  1. uwe sagt:

    Der Autor bin ich und bei mir gibt es keine Fehler beim kompilieren. Aus Ernmangelung des Aufbaus hab ich es nicht praktisch verifiziert.
    Versuch mal anstatt abzuschreiben den Text zu kopieren.
    Grüße Uwe

    Login or register to post comments