Ohje diese Anfängerfehler ... Aber das Problem besteht weiterhin, das Menü funktioniert nicht mehr wennlösche ich Joystick() gehts wieder...case 1:
Teachen_menue();
Joystick();
break;
Ohne geschweifte Klammern:Code:void loop() { switch(state) { case 0: lcd.clear(); lcd.setCursor(0,0) ; lcd.print(">>>>>>>Robotik<<<<<<") ; lcd.setCursor(0,1) ; lcd.print("Projektarbeit2014 by") ; lcd.setCursor(0,2) ; lcd.print("Kevin Krause") ; lcd.setCursor(0,3) ; lcd.print("Dominik Loher") ; delay(10000); // 10 Sekunden? Ernsthaft? state = 1; // kein break -> läuft in den case 1! case 1: Teachen_menue(); Joystick(); break; case 2: Automatik(); break; case 3: Justage(); break; }//END_SWITCH }//END_LOOP
Ohje diese Anfängerfehler ... Aber das Problem besteht weiterhin, das Menü funktioniert nicht mehr wennlösche ich Joystick() gehts wieder...case 1:
Teachen_menue();
Joystick();
break;
Klappts denn ohne Auslagern?
Hier eine vereinfachte Version:
Code:void Joystick() { int analog_in0 = (512 - analogRead(ANALOG_IN0)); int analog_in1 = (512 - analogRead(ANALOG_IN1)); int analog_in2 = (512 - analogRead(ANALOG_IN2)); int analog_in3 = (512 - analogRead(ANALOG_IN3)); //.......Stepper1..........// if ( analog_in0 <= -35 || analog_in0 >= 35) { Stepper0.setSpeed(exp(analog_in0 / 67)) ; Stepper0.runSpeed(); } //.......Stepper1..........// if ( analog_in1 <= -35 || analog_in1 >= 35) { Stepper1.setSpeed(exp(analog_in1 / 67)) ; Stepper1.runSpeed(); } //.......Stepper2..........// if ( analog_in2 <= -35 || analog_in2 >= 35) { Stepper2.setSpeed(exp(analog_in2 / 67)) ; Stepper2.runSpeed(); } //.......Stepper3..........// if ( analog_in3 <= -35 || analog_in3 >= 35) { Stepper3.setSpeed(exp(analog_in3 / 67)) ; Stepper3.runSpeed(); } // Ausgabe im Serial Monitor Serial.print( analog_in0 ); Serial.print( ' ' ); Serial.print( analog_in1 ); Serial.print( ' ' ); Serial.print( analog_in2 ); Serial.print( ' ' ); Serial.println( analog_in3 ); }
Ne dann klappt es leider auch nicht :/
- - - Aktualisiert - - -
Es macht den Anschein als wäre joystick() das Problem ...wenn ich aus case 1 das Teaching_menu() lösche und dafür lcd.clear() einsetze . Hängt das display auch bzw es lässt sich nicht durchwählen.
- - - Aktualisiert - - -
Fehler gefunden , bzw es ergibt keinen Sinn ... im case 0 hab ich die delay zeit auf 5 Sekunden gesetzt ....jetzt geht alles wie es soll .Kennt wer die Erklärung dafür ?
Geändert von jok3r (23.03.2014 um 14:28 Uhr)
Ne, aber manchmal ist das halt so. Vermutung: interrupts.
Okay ich weiß nicht was ich getan hab , aber der Fehler ist wieder vorhanden ^^.....Mittwoch kommt der Arduino Mega dann tausche ich den Due dagegen aus, vill wirds besser ...
- - - Aktualisiert - - -
So ich hab den Fehler wohl endlich gefunden---> Hinweise
Die Funktion delay() als Funktion innerhalb des Interrupts funktioniert nicht, ebenso wird millis() die zurückgegebenen Werte nicht hochzählen. Serielle Daten, die während der Funktion eintreffen, werden nicht berücksichtigt und gehen verloren. Jede Variable die innerhalb der eingebetteten Funktion verändert wird sollte als volatile deklariert werden
ich hab das entprellen entfernt und schon ging es .![]()
Lesezeichen