Arduino führt nur Code der ersten Zeilen aus

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,
    aktuell habe ich ein kleines Problem mit meinem Arduino, und zwar funktioniert er überhaupt nicht so wie er sollte. Aufgefallen ist mir das als ich eine Verzögerung für eine LED programmieren wollte. Nachdem, ich den Schalter nämlich aktiviert hatte, vergingen gefülhlte 10 Minuten, bis die LED endlich anging, im Code waren aber lediglich 2 Sekunden deklariert. An diesem Punkt, dachte ich an eine Fehlofunktion des Quarzes. weswegen ich einen anderen Code schrieb, der die LED auch ansteuern sollte, aber auch dieser funktionierte nur soweit, das er die LED anschaltete, aber nicht wieder ab. Hoffe deswegen jetzt auf eure Hilfe,

    Colin

  • Ich habe volles Mitgefühl....
    Ja, das ist ein Grund zum heulen...

    Ich hoffe auf gute Besserung.
    Helfen kann ich dir nicht, denn es bleiben ja alle wichtigen Informationen geheim.

    Welche IDE?
    Code?
    Welche Hardware?
    Welche Fuses sind gesetzt?
    usw....

    spruch.png

  • Man, man man...
    Also ein ATmega328P ? Oder?

    Mit den Fuses werden im Prozessor einige Grundeinstellungen getätigt.
    Unter anderem auch die Art der Taktgenerierung.
    Nimm dir die Doku zu dem Baustein in die Hand, dort wirds dir genau erklärt.
    http://www.mikrocontroller.net/articles/AVR_Fuses

    Wenn du in der IDE den falschen Baustein angegeben hast, könnte das schon mal daneben gehen.

    Zitat


    mit abgeändertem Delay


    auf 10 Minuten?


    Warum muss dein Code geheim bleiben.
    Meine telepathischen Fähigkeiten sind begrenzt. Ich kann leider von hier aus keine Tippfehler entdecken. Auch sehe ich die Compilerausgaben nicht. Und ja, in der IDE kann man die Codegenerierung auf "geschwätzig" stellen. Noch nicht mal einen Gegentest kann ich hier machen...

    spruch.png

    Einmal editiert, zuletzt von combie (8. Februar 2014 um 10:06)


  • Hier schon mal der Code, den delay habe ich, wie man ja sehen kann, auf 2 Sekunden abgeändert.
    In der Ide ist der uno als Baustein angegeben. Der Chip ist, wie du bereits erwähnt hast, der ATmega 328p. Der Comkpiller gibt soweit keine Fehler aus, wäre ja auch komisch, da es der ganz normale Blink Sketch mit abgeändertem Delay ist.

    Gruß,
    Colin

    Einmal editiert, zuletzt von natsuga (8. Februar 2014 um 10:09)

  • Das Programm habe ich getestet. Das tuts.

    Zitat

    Der Comkpiller gibt soweit keine Fehler aus,


    Das meine ich auch nicht...
    Bei den Ausgaben könntest du finden, wie avrdude aufgerufen wird...

    avrdude kann dir die Fuses zeigen..

    Bei mir sieht das zeigen so aus:

    Code
    C:\Programme\arduino-1.0.5-r2\hardware\tools\avr\bin\avrdude.exe -CC:\Programme\arduino-1.0.5-r2\hardware\tools\avr\etc\avrdude.conf -patmega328p -carduino -P\\.\COM3 -b115200 -n -v


    musst du natürlich auf deine Verhältnisse anpassen

    spruch.png

    Einmal editiert, zuletzt von combie (8. Februar 2014 um 11:12)

  • Durch ein Wunder funktioniert er auf einmal wieder. Gestern habe ich ihn bestimmt, 30 Mal getestet, und heute Morgen hbe ich den Code nochmal hochgeladen, und siehe da, plötzlich funktioniert er.

    So, jetzt tut sich aber ein weiters Problem auf, alls ich den Button Sketch:
    /*
    Button

    Turns on and off a light emitting diode(LED) connected to digital
    pin 13, when pressing a pushbutton attached to pin 2.


    The circuit:
    * LED attached from pin 13 to ground
    * pushbutton attached to pin 2 from +5V
    * 10K resistor attached to pin 2 from ground

    * Note: on most Arduinos there is already an LED on the board
    attached to pin 13.


    created 2005
    by DojoDave <http://www.0j0.org>
    modified 30 Aug 2011
    by Tom Igoe

    This example code is in the public domain.

    http://www.arduino.cc/en/Tutorial/Button
    */

    // constants won't change. They're used here to
    // set pin numbers:
    const int buttonPin = 2; // the number of the pushbutton pin
    const int ledPin = 13; // the number of the LED pin

    // variables will change:
    int buttonState = 0; // variable for reading the pushbutton status

    void setup() {
    // initialize the LED pin as an output:
    pinMode(ledPin, OUTPUT);
    // initialize the pushbutton pin as an input:
    pinMode(buttonPin, INPUT);
    }

    void loop(){
    // read the state of the pushbutton value:
    buttonState = digitalRead(buttonPin);

    // check if the pushbutton is pressed.
    // if it is, the buttonState is HIGH:
    if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
    }
    else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
    }
    }

    getestet habe, blieb die LED auch an, nachdem ich den Button losgelassen hatte. Hab ich vielleicht irgendwo ein Delay vergessen oder so. Bin für jede Hilfe dankbar. Ach ja die LED bleibt 10 Sekunden an, kann mir bitte irgendjemand helfen?

    Ups mein Fehler, hate den Wiederstand vergessen

    Einmal editiert, zuletzt von natsuga (9. Februar 2014 um 16:26)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!