-         

Ergebnis 1 bis 5 von 5

Thema: PollSwitch tast/programmier problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.01.2008
    Ort
    Ansbach
    Alter
    27
    Beiträge
    19

    PollSwitch tast/programmier problem

    Anzeige

    Ich bin noch ganz am Anfang der Programmierung, und möchte dass ASURO nur gerade aus fährt. Und wenn er irgendwo dagegenfährt anhält.

    Das Problem ist, er fährt gar nicht erst los. man hört zwar für nen Bruchteil einer Sekunde die beiden Motoren, und er fährt auch los, aber hält dann schon nach nem Millimeter. die PollSwitch Taster gingen beim Selbsttest noch. Hier is mein verwendeter Code:

    Code:
    #include "asuro.h"
    
    unsigned char taste;
    int main(void){
    	Init();
    	taste=PollSwitch();
    	MotorDir(FWD,FWD);
    	while (taste==0){
    		MotorSpeed(120,120);
    		StatusLED(GREEN);
    		taste=PollSwitch();}
    	MotorDir(BREAK,BREAK);
    	while(1);
    	return 0;
    	}
    da ist doch dann offensichtlich ein Fehler drin, oder?

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Hallo SRT

    Die von PollSwitch() gelieferten Werte sind nicht immer korrekt, deshalb sollte man die Taster mehrfach überprüfen:

    Code:
    #include "asuro.h"
    
    unsigned char taste1, taste2;
    
    int main(void){
       Init();
       MotorDir(FWD,FWD);
    	MotorSpeed(120,120);
    	StatusLED(YELLOW);
    
       do
    	{
       	taste1=PollSwitch();
       	taste2=PollSwitch();
    	}
    	while((taste1==0) || (taste2==0));
    
       MotorSpeed(0,0);
       MotorDir(BREAK,BREAK);
       StatusLED(RED);
       while(1);
       return(0);
    }
    Gruß

    mic

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    Mir ist etws augefallen.Namlich:
    Code:
    #include "asuro.h" 
    
    unsigned char taste; 
    int main(void){ 
       Init(); 
       taste=PollSwitch(); 
       MotorDir(FWD,FWD); 
       --->while (taste==0){ <---//Anwiesung wiederholen bis taste==0
          MotorSpeed(120,120); 
          StatusLED(GREEN); 
          taste=PollSwitch();} 
       MotorDir(BREAK,BREAK); 
       while(1); 
       return 0; 
       }
    Bessr zu schreiben währe while(taster>0){.Oder irrre ich mich da???
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.782
    Blog-Einträge
    8
    Oder irre ich mich da?
    Solange keine Taste (taste==0) setze MotorSpeed(), mache StatusLED grün und lese neuen Tastenwert ein.

    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    26.01.2008
    Ort
    Ansbach
    Alter
    27
    Beiträge
    19
    Danke für die Tipps. Er läuft, und läuft, und bei taster drücken steht er. thx

Berechtigungen

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