Hallo
So leider bin ich kein Stückchen weiter. Die Fahrtenregler machen noch immer was sie wollen (Leider). Ich ändere das Programm so das es mit vorwärts beginnt u. dann rückwärts mit der gewünschten Geschwindigkeit.
1 Test. Ich schalte nun den RP6 aus ohne die Akkus ab zu stecken und wieder ein, keine Veränderung am Ablauf des Programms. 2. Test. Ich schalte den RP6 aus stecke die Akkus ab ,schalte den RP6 wieder ein spiele das Programm wieder drauf schalte den RP6 wieder aus stecke ,die Akkus wieder an und schalte den Rp6 wieder an. Die Fahrtenregler machen wieder alles nur nicht das was vorher eingestellt wurde, ich habe natürlich auch andere Abläufe versucht wie Akkus abstecken während der RP6 angeschalten ist (aber das Programm nicht läuft nur Power on) wieder das gleiche.
Es ist auch so dass wenn ich das Programm dann wieder auf die gewünschte Funktion einstelle, dass ich dann immer andere Werte habe wie vor dem ab stecken der Akkus. Wenn ich das Programm so lasse wie du es mir gegeben hast Pr0gm4n dann Ffährt der Robi nur vorwärts mit Vollgas u. mit kurzen Stops ich habe es dann verändert so das er vor u. zurück fährt , so wie ich den code jetzt zeige ist es super gelaufen ich weiss nicht ob das korrekt ist wie ich es eingestellt habe aber leider ist es so am Besten gegangen, kann es sein dass ich da was falsch eingestellt habe, dass es nach dem ab und an stecken der Akkus nicht mehr Funktioniert. BITTE BITTE Hilfe ich bin echt schon am verzweifeln. PS Das mit den Speicher ist natürlich Schwachsinn gewesen war noch bei einem Modelbaushop und der hat das auch zum ersten mal gehört mit Speicher, jetzt weiss ich wo ich nicht mehr nachfragen gehe.
Code:
#include "RP6RobotBaseLib.h" //Code by Pr0gm4n© v1.0 Fahrtenregler/Servos an ADC0 und ADC1 

void vorwaerts(int geschwindigkeit, int zeit)//geschwindigkeit zwischen 0 und 5, bei 0 = stillstand; zeit in ms 
{ 
     if(geschwindigkeit > 5)geschwindigkeit = 5; 
     if(geschwindigkeit < 0)geschwindigkeit = 0; 
     int x = 13+geschwindigkeit; 
     int i; 
     for(i=0;i<(zeit/20);i++) 
     { 
            PORTA |= 1; 
            sleep(x); 
            PORTA &= ~1; 
            PORTA |= 2; 
            sleep(30-x); 
            PORTA &= ~2; 
            sleep(170); 
     } 
} 

void rueckwaerts(int geschwindigkeit, int zeit)//geschwindigkeit zwischen 1 und 5; zeit in ms 
{ 
     if(geschwindigkeit > 5)geschwindigkeit = 5; 
     if(geschwindigkeit < 1)geschwindigkeit = 1; 
     int x = 23-geschwindigkeit; 
     int i; 
     for(i=0;i<(zeit/20);i++) 
     { 
            PORTA |= 1; 
            sleep(x); 
            PORTA &= ~1; 
            PORTA |= 2; 
            sleep(30-x); 
            PORTA &= ~2; 
            sleep(170); 
     } 
} 

void initMotoren() 
{ 
     DDRA |=3; 
} 


int main(void) 
{ 
   initRobotBase(); 
   initMotoren(); 

   while(true) 
   {
     
     vorwaerts(0, 100); 
     vorwaerts(2, 1000);
      vorwaerts(0, 100); 
     rueckwaerts(3, 1000); 
     
   } 
   return(0); 
}