-         

Seite 1 von 4 123 ... LetzteLetzte
Ergebnis 1 bis 10 von 34

Thema: Mein erstes Prog mit ASURO

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44

    Mein erstes Prog mit ASURO

    Anzeige

    Hallo,

    Ich habe gerade das Bsp. Prog von ASURO ein bischen abgeändert...
    Es macht aber nicht, was es soll... was habe ich falsch gemacht?
    Es sollte FWD fahren und wenn ein Taster gedrückt wird RWD... wan welcher stelle habe ich das Problem reingebaut?
    ASURO fährt nur nach vorne aber wenn ich einen Taster drückt fährt er unbehelligt weiter...??

    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	Init();
    	BackLED(ON,ON);
    	MotorDir(FWD,FWD);
    	MotorSpeed(120,120);
    	while (PollSwitch()==0);
    	{
    		SerWrite("Alles OK!\n",10);
    	}
    	MotorDir(RWD,RWD);
    	MotorSpeed(150,150);
    	FrontLED(ON);
    	BackLED(OFF,ON);
    	while(1)
    	{
    		SerWrite("Crash!!\n",10);
    	}
    }
    Gruß Matthias

  2. #2
    Versuch' mal, den PollSwitch()-Wert in einer Variable zu speichern:

    Code:
    #include "asuro.h" 
    
    int main(void) 
    { 
       unsigned char taster = 0;
       char i;
       Init(); 
       BackLED(ON,ON); 
       MotorDir(FWD,FWD); 
       MotorSpeed(120,120); 
       while (taster==0); 
       { 
          SerWrite("Alles OK!\n",10);
          for (i = 0; i < 5; i++) PollSwitch();
          taster = PollSwitch();
       } 
       MotorDir(RWD,RWD); 
       MotorSpeed(150,150); 
       FrontLED(ON); 
       BackLED(OFF,ON); 
       while(1) 
       { 
          SerWrite("Crash!!\n",10); 
       } 
    }
    (PollSwitch() wird zur Sicherheit mehrmals aufgerufen.)

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    danke, jetzt läuft es schon eher, wie ich es mir vorstelle, aber er fährt nur eine halbe Sekunde oder so nach vorne und dann nach hinten, als ob ein Taster betätigt wurde oder war das beabsichtigt??
    Kann das an der Hardware liegen?

    Das kommt per IF an:


    Alles OK!
    Crash!!
    ÃCrash!!
    ¨Crash!!
    ŒCrash!!
    ..............................

    EDIT: Jetzt habe ich noch eines Probiert mit If und else... aber das wird nicht mal vom Compiler angenommen...^^

    Code:
    #include "asuro.h" 
    
    int main(void) 
    { 
       unsigned char taster; 
       char i; 
       Init(); 
       taster = PollSwitch(); 
       {
    		  if (Taster==0)
    	  {
    		  MotorDir(FWD,FWD);
    		 MotorSpeed (120,120);
    		  BackLED(ON,ON);
    	  }
    		  else
    	  {
    		  MotorDir(RWD,RWD);
    		  MotorSpeed(120,120);
    		  BackLED(OFF,OFF);
    		  FrontLED(ON);
    	   } 
    	}
    }

  4. #4
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    du hast ein überflüssiges paar {}, aber das sollte den fehler nicht hervorrufen... was sagt denn der compiler?
    kleinschreibung ist cool!

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    26
    Beiträge
    239
    also was mir beim letzten Code auffällt, die Taster werden nur einmal abgefragt.
    das heißt wenn du am Anfang keinen Taster drückst fährt er immer vorwärts, wenn du am Anfang Taster drückst fährt er rückwärts
    späteres drücken von Tastern ändert nichts

    versuch mal das ganze in eine Endlosschleife zu packen, damit die Tasterabfrage öfter ausgeführt wird


    nun zu der Fehlermeldung: wäre nicht schlecht wenn du sie uns mal postest,
    aber vl musst du am Ende der main-Funktion nur while(1); return 0; hinzufügen

    mfg hai1991

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    test.c:10: error: `Taster' undeclared (first use in this function)
    test.c:10: error: (Each undeclared identifier is reported only once
    test.c:10: error: for each function it appears in.)
    test.c:6: warning: unused variable `i'
    test.c:24:2: warning: no newline at end of file


    das kommt... was ist dann falsch?

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384
    Du hast als du die Variable taster deklariert hast, es klein geschrieben, als du sie verwendest groß, für den Compiler sind das zwei verschiedene Variablen du musst wenn du sie deklarierst auch genauso schreiben. das wären die ersten drei Fehlermeldungen. Die 4. will dir sagen, dass es eine Variable gibt, die nicht benutzt wird (eigentlich kein Problem, is ja auch nur ne Warnung). Die letzte Warnung hab ich noch nie verstanden, sie will dir einfach nur sagen, dass du keine neue Zeile am Ende deines Codes genacht hast. Einmal am Ende enter drücken und schon ist sie weg.

    mfg
    Erik

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    26
    Beiträge
    239
    in if(taster==0) hast du taster mit "T" geschrieben (Groß- und Kleinbuchstaben sind nicht das selbe!!!)

    der rest sind nur Warnungen und daher nicht ausschalggebend

    probier einmal diese Änderung ob er es zumindest übersetzt

    aber wie oben schon erwähnt wird die Tasterabfrage nur ganz am Anfang einmal aufgerufen (ich weiß nicht ob das dein Ziel ist)

    mfg hai1991

  9. #9
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    26.11.2006
    Ort
    Hamburg
    Alter
    25
    Beiträge
    384
    ich war schneller

  10. #10
    Benutzer Stammmitglied
    Registriert seit
    16.03.2008
    Beiträge
    44
    danke ich probier gleich obs dann geht...!

Seite 1 von 4 123 ... LetzteLetzte

Berechtigungen

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