- Labornetzteil AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 16 von 16

Thema: Asuro Fahrt nur Rückwärts. Porgrammierfeler???

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    05.09.2007
    Beiträge
    168
    Anzeige

    Praxistest und DIY Projekte
    Das liegt daran, dass der Hersteller bei den Motoren die Markierungen falsch gesetzt hatten.
    Das hatten wir bei vielen von unseren 50 ASUROs auch.

    Das Programm kann ich auch hochladen ...
    Das haben wir ja erst kürzlich in der Schule geschrieben ...
    Mir ist es egal ...
    Die einzige Vorraussetzung, die mein Programm hätte, wäre dass es die Library vorraussetzt.

  2. #12
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    @Sim Robot:
    Schreib mal ein Programm, welches eine Verbindung zum HyperTerminal aufbaut und dann ausgibt, welcher Taster gedrückt worden ist.
    Dann kannst du ganz genau nachvollziehen, ob es einen Defekt auch bei dir gibt.
    Habe ich gemacht. Mein Programm Siht so aus
    Code:
    #include "asuro.h"
    
    int main(void){
    	unsigned char t;
    	unsigned char w;
    	Init();
    	while(1){
    	t=PollSwitch();
    	w=PollSwitch();
    	if((t==w)&&(w==1)){
    		SerWrite("a",1);
    		}
    	else if((t==w)&&(t==2)){
    		SerWrite("b",1);
    		}
    	else if((t==w)&&(t==4)){
    		SerWrite("c",1);
    		}
    	else if((t==w)&&(t==8)){
    		SerWrite("d",1);
    		}
    	else if((t==w)&&(t==16)){
    		SerWrite("e",1);
    		}
    	else if((t==w)&&(t==32)){
    		SerWrite("f",1);
    		}
    	}
    	return 0;
    }
    Und im Hyperterminal Kammen genau die signale an die ankommen sollten. Nämlich a,b,c,d,e und f. Also ist kein taster Kaputt.
    Übrigens wie ich oben schon gesagt habe Funktioniet der if-satz nur nicht wenn ich dahinter MotorDir oder MotorSpeed setze.
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    Ich habe mein Programm noch einmal überschrieben. Das sieht jetzt soe aus:
    Code:
    #include "asuro.h"
    
    int main(void){
    	int c=0;
    	Init();
    	while(1){
    	unsigned char b;
    	unsigned char a;
    	b=PollSwitch();
    	a=PollSwitch();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(120,120);
    	Sleep(100);
    	if ((b>0)){
    		MotorDir(RWD,RWD);
    		MotorSpeed(120,120);
    		for(c=0;c<282;c++){
    		Sleep(255);}
    		MotorDir(RWD,FWD);
    		MotorSpeed(120,120);
    		for(c=0;c<282;c++){
    		Sleep(255);
    		}
    	}
    	else{
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);
    	}
    	}
    	return 0;
    	}
    Der Roboter Fährt zurück und dreht wenn er irgendwo gegen fährt. aber ich muss irgendwo eine schleife eingebaut haben.denn der Asuro wieder holt den "rückwärts und dreh code" manchmal 1x so wie er soll. doch manchmal auch2 oder 3x.woran liegt das???????
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  4. #14
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Hallo

    woran liegt das???????
    if((t==w)&&(w==1)) prüft ob beidesmal der selbe Code eingelesen wurde

    if ((b>0)) prüft nur, ob einmal etwas größer 0 eingelesen wurde

    if ((b>0) && (a==b)) wäre richtig

    Gruß

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

  5. #15
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    30.11.2007
    Beiträge
    152
    if ((b>0) && (a==b)) wäre richtig
    Danke für den tipp. Hat allerdings noch nicht richtig geklapt. Deswegen habe ich es noch etwas abgändert.Nämlich
    Code:
    if ((b>0)&&(a==b)&&(a==c)&&(b==c))
    Jetzt geht es einwandfrei \/
    [schild=14 fontcolor=000000 shadowcolor=C0C0C0 shieldshadow=1]Roboter sind cool[/schild]

  6. #16
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Prima.

    Wenn a==b und a==c brauchst du b==c nicht mehr prüfen.

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

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

LiFePO4 Speicher Test