- LiFePO4 Speicher Test         
Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte
Ergebnis 41 bis 50 von 62

Thema: Anfänger hat probleme mit Asuro

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

    E-Bike
    Hallo

    Bitte verwende die Code-Tags wenn du ein Programm in deinen Beitrag kopierst. Und wenn schon ein Programm gezeigt wird, dann bitte nicht so einen Fetzen sondern eine fehler- und warnungsfrei kompilierbare Version. Danke :)

    Vermutlich stören die Motoren die PollSwitch()-Funktion. Versuche mal das, einmal ohne und einmal mit Motoren:

    Code:
    ...
    	MotorSpeed(0,0);
    	// MotorSpeed(150,150);
    	while (1)
    	{
    		if(PollSwitch()>0) StatusLED(RED); else StatusLED(GREEN);
    	}
    	while (1);
    	return 0;
    }
    Sleep() wird richtig verwendet: 2 Sekunden. Irgendwie bin ich zur Zeit etwas langsam...

    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!

  2. #42
    Benutzer Stammmitglied
    Registriert seit
    16.06.2009
    Beiträge
    38
    Hi
    srry hab vergessen den oberen teil auch zu kopieren..
    @valen: was meinst du mit mehrere pollswitch hintereinander?
    @radbruch: ohne motor funktioniert die pollswitch funktion, mit motoren nicht.
    Code:
    #include <asuro.h>
    
    int main(void) {
    
    int i;
    Init();
      
       
       while (1)
       {
          if(PollSwitch()>0) 
    	 { StatusLED(RED);
    	  MotorDir(RWD,RWD);
    	  for(i=0; i<1000; i++) Sleep(72);
    	  MotorSpeed(150,150); 
    	  for(i=0; i<1000; i++) Sleep(72);}
    	 
    	  else {StatusLED(GREEN);
    	  MotorDir(FWD,FWD);
    	  MotorSpeed(150,150);} 
    	 
    	 
       }
       while (1);
       return 0;
       }
    so .. sind des jetzt die code tags? oder hast du was anderes gemeint?
    Bei dem programmm fährt er jetzt zb nur vorwärts..
    irgendwie versteh ich im moment nur bahnhof..
    Srry wenn ich ein bisschen länger bruch um ddes zeug zu verstehn

  3. #43
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Zitat Zitat von shorty93
    ...
    @valen: was meinst du mit mehrere pollswitch hintereinander?
    Schau mal an in Schoksnert's post:

    https://www.roboternetz.de/phpBB2/viewtopic.php?t=48656

  4. #44
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Das wird schon :)

    Ein Ansatz für die Kontrolle der mit PollSwitch() ermittelten Werte:

    Code:
    #include "asuro.h"
    
    char t1,t2;
    
    void ms_pause(unsigned int p)
    {
    	while(p--) Sleep(72);
    }
    
    int main(void)
    {
    	Init();
       MotorSpeed(150,150);
    
    	while(1)
    	{
    		t1=PollSwitch();
    		t2=PollSwitch();
    		if((t1>0) && (t1==t2))
       	{
    			StatusLED(RED);
    			MotorDir(BREAK, BREAK);
         		ms_pause(100);
          	MotorDir(RWD,RWD);
        		MotorSpeed(120,150);
         		ms_pause(1000);
    
    			StatusLED(GREEN);
    			MotorDir(BREAK, BREAK);
         		ms_pause(100);
          	MotorDir(FWD,FWD);
        		MotorSpeed(150,150);
    	   }
    	}
    
       while (1);
       return 0;
    }
    Wobei mir diese Variante eigentlich besser gefällt:
    Code:
    #include "asuro.h"
    
    char t1,t2;
    
    void ms_pause(unsigned int p)
    {
    	while(p--) Sleep(72);
    }
    
    int main(void)
    {
    	Init();
       MotorSpeed(150,150);
    	t2=PollSwitch();
    
    	while(1)
    	{
    		t1=PollSwitch();
    		if((t1>0) && (t1==t2))
       	{
    			StatusLED(RED);
    			MotorDir(BREAK, BREAK);
         		ms_pause(100);
          	MotorDir(RWD,RWD);
        		MotorSpeed(120,150);
         		ms_pause(1000);
    
    			StatusLED(GREEN);
    			MotorDir(BREAK, BREAK);
         		ms_pause(100);
          	MotorDir(FWD,FWD);
        		MotorSpeed(150,150);
    	   }
    	   t2=t1;
    	}
    
       while (1);
       return 0;
    }
    Beides nicht getestet!

    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. #45
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    01.03.2008
    Ort
    Niederlanden
    Beiträge
    1.170
    Radbruch du hast recht. Mit nur ein PollSwitch pro while-schleife durchgang, aber das vergleichen mit dem letzten durchgang ist super. Er reagiert damit etwas schneller.

  6. #46
    Benutzer Stammmitglied
    Registriert seit
    04.06.2009
    Beiträge
    49
    Endloschleife am Schluss gemacht?

  7. #47
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Die Endlosschleife am Schluß kann man sich natürlich auch sparen...
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  8. #48
    Benutzer Stammmitglied
    Registriert seit
    04.06.2009
    Beiträge
    49
    Werden dann nicht die programme die noch im speicher (danach) sind?

    mfG

  9. #49
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Die Endlosschleife am Schluß kann man sich natürlich auch sparen...
    ....weil die Hauptschleife in den Programmen auf der vorigen Seite nie verlassen wird. Grundsätzlich gilt natürlich, dass die main()-Funktion nie beendet werden darf :)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  10. #50
    Benutzer Stammmitglied
    Registriert seit
    16.06.2009
    Beiträge
    38
    Hi Danke für die hilfe
    @ radbruch: was meinst du mit "void ms_pause(unsigned int p)"
    für was braucht man das?

    Und warum hilft es wenn man 2 pollswitch abfrägt.[ was ist pollswitch eig genau?(wenn irgend ein schalter gedrückt wird?)]

    CU

Seite 5 von 7 ErsteErste ... 34567 LetzteLetzte

Berechtigungen

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

Labornetzteil AliExpress