Zitat Zitat von NicMaxFen Beitrag anzeigen
ok danke wie/wo soll ich dan teoretisch den Sleep einbauen damit der alles macht?
Alles machen ist ein bisschen viel für ein Atmega8 Roboter.

Er fäht nach vorne----> Stößt an----> Dreht sich---->Stößt wieder an----> Fährt rückwärts
Das folgende Programm macht das. Aber, ist das wirklich genau das verfahren was du möchtest? Nun wird er meistens nur 2 mal ein Anstoss erkennen, und danach Rückwärts fahren.

Code:
#include "asuro.h"

// "Er fäht nach vorne----> Stößt an----> Dreht sich---->Stößt wieder an----> Fährt rückwärts"

int main(void){

Init();

 
// " Er fäht nach vorne"
 
MotorSpeed(112,100);
MotorDir(FWD,FWD);
StatusLED(GREEN);

     
    
if (PollSwitch()>0) {   // Stößt an----> Dreht sich
    MotorSpeed(112,100);
    MotorDir(RWD,FWD);
    BackLED(ON,ON);
    FrontLED(ON);
    StatusLED(RED);}
        
for(i=0;i<200;i++) Sleep(72); // Wartet 200 milisekunden weil es dreht.
    
// Keine ahnung was du mit das hier unter möchtest. Ist kein teil deine Aktion Beschreibung.
// Das wurde er machen wan kein Anstoss erkannt wird. Ist aber auch ein art von Drehung!
    
/* else {
    MotorSpeed(100,0);
    MotorDir(RWD,BREAK);
    StatusLED(YELLOW);} */ 
    
// Obene else-Block ist aus-kommentiert.
    
if (PollSwitch()>0){ // Stößt wieder an----> Fährt rückwärts
    MotorSpeed(112,100);
    MotorDir(RWD,RWD);
    StatusLED(RED);
    BackLED(ON,ON);}
        
// Und nun für immer Rückwärts fahren????
    
while(1); // Ich gehe in Zen-zustand, für immer! Doch fahre auch noch Rückwärts
    
return 0; // Ende der Main-Funktion. Dieses Befehl soll niemals erreicht werden.
}