-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Was stimmt an diesem Programm nicht ?

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.11.2005
    Ort
    Graz (Österreich)
    Alter
    25
    Beiträge
    212

    Was stimmt an diesem Programm nicht ?

    Anzeige

    Wenn ich das Programm auf den ASURO lade leuchtet nur die Status Led grün. Was stimmt da nicht ?? Er sollte normalerweise fahren bis er in ne wand kracht und dann umdrehen. Es gibt ausserdem ein leises Summen





    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	int i;
    
    	Init();
    	
    	MotorSpeed(100,100);
    	
    	while(1)
    	{
    		MotorDir(FWD,FWD);
    		
    		StatusLED(GREEN);
    		
    		while (PollSwitch == 0);
    		
    		MotorDir(RWD,RWD);
    		
    		for (i = 0; i<844; i++)
    		{
    			Sleep(255);
    		}
    		
    		MotorDir(FWD,RWD);
    		
    		for (i = 0; i<1600; i++)
    		{
    			Sleep(255);
    		}
    		
    	}
    	
    	return 0;
    }
    mfg Daniel

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    Hallo,
    Warum das stimmt doch, oder was soll die LED machen ?
    Wenn man angibt StatusLED(GREEN); leuchtet sie grün wenn sie richtigrum drin ist.

    Oder von was redest Du ?

    Und den Code Bitte in Code-Tags einschliessen, da lässt sich sonst schlecht erkennen was da zusammengehört !

    PS:
    da steht mfg Daniel mitten im Code, das sollte da wohl auch nicht hin

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    03.01.2007
    Ort
    Lunz/See
    Alter
    29
    Beiträge
    29
    Hallo

    ich versteh nicht ganz was du willst.
    willst du das der BOT soll geradeaus fährt bis ein Hinderniss kommt dann fährt er zurück dreht sich und fährt dann weiter?

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.11.2005
    Ort
    Graz (Österreich)
    Alter
    25
    Beiträge
    212
    @ Hissi: jepp
    @ all: Der Rest vom Code hinter mfg Daniel hat garnicht dazugehört den hab ich nur ausversehen gepostet aber jetzt stimmt alles (hoffe ich)
    mfg Daniel

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    erst speichern dann kompilieren. das ist der häufigste fehler. bist du sicher dass du das so gemacht hast?
    kleinschreibung ist cool!

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    06.11.2005
    Ort
    Graz (Österreich)
    Alter
    25
    Beiträge
    212
    hab gespeichert und Kompieliert und übertragen in der reihenfolge geht alles
    mfg Daniel

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    24.11.2006
    Beiträge
    25
    Gibt dem Motor mal mehr Dampf, kann passieren das die bei 100 nicht anlaufen, probier einfach mal 255.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    03.01.2007
    Ort
    Lunz/See
    Alter
    29
    Beiträge
    29
    Hallo

    bei dem while (PollSwitch == 0);

    fehlen die Klammern und es gehört kein Strich-Punkt dahinter müsste eigentlich nen Fehler anzeigen.

    Soll der Bot in den for Schleifen die 2,5s warten oder soll er fahren (fahren geht glaub ich mit Sleep nicht Zitat Asuro Anleitung:
    "9.2.5. void Sleep(unsigned char time72kHz)
    Diese Funktion lässt den Prozessor für eine einstellbare Zeit warten.")

    Ausserdem ist die ganze while Funktion irgendwie unsinnig While(PollSWitch()==0)
    {MotorDir(RWD,RWD);}
    oder versteh ich da was falsch

    mfg Hissi

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

    Ich würde mein Programm aufs Wesentliche reduzieren und dann prüfen, ab welchem Wert der asuro losfährt.

    Übrigens zuck bei mir alles wenn ich sehe, wie ihr die Motoren und die Getriebe quält. Der Ablauf sollte ungefähr so sein:

    Motorrichtungen wählen
    Geschwindigkeiten wählen
    Fahren
    Geschwindigkeit auf 0 setzen und kurz warten
    Neue Richtungen wählen
    Neue Geschwindigkeiten wählen
    Weiterfahren
    usw.

    Oder eben mit PWM und Sanftanlauf, aber als Anfang tuts ne kleine Sleep-Schleife natürlich auch.

    @hissi:
    fahren geht glaub ich mit Sleep nicht
    Wenn die Ausgänge für die Motoren gesetzt sind kann der Prozessor tun was er will..

    Gruß

    mic

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

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    22.05.2005
    Ort
    12°29´ O, 48°38´ N
    Alter
    48
    Beiträge
    2.731
    @Hissi,

    das mit dem while ohne {} aber mit ; passt schon so, denn wenn nix in Klammern steht macht er einfach nix in der Zeit und wartet nur bis Pollswitch nicht 0 ist.

    Und wie der_andi schon gemeint hat, bei 100 werden nur die Motoren etwas summen, aber nicht fahren.

    Bei meinem geht nur eine Seite bei 100 er fährt etwas hinundher um die Kurve, bei 160 kann man schon von Fahren reden.

    Was mir aber aufgefallen ist, beim compilieren hat der Compiler die while(Pollswitch==0) rausgeworfen, der fährt nur immer zurück und dreht sich !


    Edit:
    Jetzt hab ichs erst gesehen, bei Pollswitch müssen die () mit dazu, sonst denkt sich der Compiler ganz was anders dabei !
    Code:
     while(Pollswitch()==0)
    Ist es das was Hissi gemeint hat ?

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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