-
        

Ergebnis 1 bis 2 von 2

Thema: asuro prob bei pollswitch

  1. #1

    asuro prob bei pollswitch

    Anzeige

    SMARTPHONES & TABLETS-bis zu 77% RABATT-Kostenlose Lieferung-Aktuell | Cool | Unentbehrlich
    hallo miteinander
    mein eigentliches ziel war es den asuro bei betätigung eines tasters eine zeit lang zurück fahren zu lassen

    doch nun mal zum einfacheren teil
    ich will jetz nur mal das wenn der taster gedrückt wird, der asuro eine weile zurück fährt und anschliessend wieder nach vorne fährt
    problem ist jetz, das er scheinbar nicht mehr aus der schleife herauskommt und somit nicht nach vorne fahren will

    bitte um hilfe

    Code:
    #include "asuro.h"
    
    int main(void){
       unsigned int a=0;
       unsigned int b=0;
       int i=0;
       char t=0;
       
       
       Init();
          
       while(1)
       {
       
          a=PollSwitch();
          b=PollSwitch();
    	  
    	  if((a==b)&&(b>0))
    		{
    		t=1;
    		}
                
    		  if (t==1)
    			{
    			
    				if(i < 2000)
    					{
    					MotorDir(RWD,RWD);
    					MotorSpeed(150,150);
    					i++;
    					}
    				
    					if(i == 1999)
    					{
    					i=0;
    					t=0;
    					MotorSpeed(FWD,FWD);
    					MotorSpeed(150,150);
    					}
    					
    			}
    			
    		    
       }
     return 0;
       }

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    Warum denn so komplizirt?
    es geht doch auch einfacher:
    Code:
    #include "asuro.h"
    
    int main(void){
    	int d;
    	Init();
    	while(1){
    	unsigned char b;
    	unsigned char a;
    	unsigned char c;
    	b=PollSwitch();
    	a=PollSwitch();
    	c=PollSwitch();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(120,120);
    	Sleep(100);
    	if ((b>0)&&(b<8)&&(a==b)&&(a==c)&&(b==c)){
    		MotorDir(RWD,RWD);
    		MotorSpeed(120,120);
    		for(d=0;d<282;d++){
    		Sleep(255);}
    		MotorDir(RWD,FWD);
    		MotorSpeed(120,120);
    		for(d=0;d<282;d++){
    		Sleep(120);
    		}
    	}
    	else if((b>7)&&(b<57)&&(a==b)&&(a==c)&&(b==c)){
    		MotorDir(RWD,RWD);
    		MotorSpeed(120,120);
    		for(d=0;d<282;d++){
    		Sleep(255);}
    		MotorDir(FWD,RWD);
    		MotorSpeed(120,120);
    		for(d=0;d<282;d++){
    		Sleep(120);
    		}
    	}
    	else{
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);
    	}
    	}
    	return 0;
    	}
    Das währe ein programm wo der asuro, wenn er links irgendwo gegen fährt ein stück Rückwärts fährt und dann nach rechts und wenn er rechts gegen fährt genau das gegenteil.
    Noch einfacher für den anfang währe es so zu schreiben
    Code:
    #include "asuro.h"
    
    int main(void){
    	int d;
    	Init();
    	while(1){
    	unsigned char b;
    	unsigned char a;
    	unsigned char c;
    	b=PollSwitch();
    	a=PollSwitch();
    	c=PollSwitch();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(120,120);
    	Sleep(100);
    	if ((b>0)&&(a==b)&&(a==c)){
    		MotorDir(RWD,RWD);
    		MotorSpeed(120,120);
    		for(d=0;d<282;d++){
    		Sleep(255);}
    		MotorDir(RWD,FWD);
    		MotorSpeed(120,120);
    		for(d=0;d<282;d++){
    		Sleep(120);
    		}
    	}
    	else{
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);
    	}
    	}
    
    }
    hier bei fährt der Asuro rückwärs und dann nach links egal auf welcher seite er anstöst.
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •