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

Thema: Asuro - Anfängerschwierigkeiten in C-Programmierung

  1. #11
    Anzeige

    Praxistest und DIY Projekte
    hab meinen Asuro jetzt wie folgt programmiert:
    #include "asuro.h"

    Code:
    int main(void)
    {	int a;
    	Init();
       
    	while(1)
    	{
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	StatusLED(GREEN);
    	
    		while (PollSwitch()==0)//fahren bis kollision
    		{
    		MotorSpeed(0,0); //bei kollision, motoren  abstellen
    		StatusLED(YELLOW);//nachdenken was passiert ist:
    	
    	unsigned char taste;
    	taste = PollSwitch();
    	
    	if (taste == 32 || taste == 48) //links kollidiert
    		{
    		MotorDir(BREAK,RWD);
    		MotorSpeed(0,120);
    		for(a=0;a<500;a++)
    		{Sleep(72);}//ca. eine ms
    		} //sollte ca 0.5sec "Pause" sein
    	
    		else if (taste == 16 || taste == 8 || taste == 4 || taste == 2 || taste == 18) //einige Frontalkollisionen
    		{
    		MotorDir(RWD,RWD);
    		MotorSpeed(120,120);
    		for(a=0;a<500;a++)
    		{Sleep(72);}
    	
    		MotorDir(RWD,FWD);
    		for(a=0;a<500;a++)
    		{Sleep(72);}}
    	
    		else if (taste == 1 || taste == 3)//rechts kollidiert
    		{
    		MotorDir(RWD,BREAK);
    		MotorSpeed(120,0);
    		for(a=0;a<500;a++)
    		{Sleep(72);}}
    	
    	
    		else//unbekanntes kollisionsmuster
    		{
    			while(1)
    			{StatusLED(RED);
    	
    			BackLED(ON,OFF);
    			Sleep(100);
    			BackLED(OFF,ON);
    			for(a=0;a<500;a++)
    			{Sleep(72);}}
    		}
    		}
    	}//nach dem "Ausweichen" wieder fahren
    
    	return 0;
    
    }
    (alt+c)

    wenn ich ichn jetzt einschalte leuchten wieder meine BackLED und meine StatusLED rot und mehr macht das gute stück dann nicht mehr...

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    31.01.2007
    Ort
    kerken
    Alter
    31
    Beiträge
    69
    hi

    du hast in die while schleife while (PollSwitch()==0)
    du hättest aber schreiben müssen : while (PollSwitch()!=0)
    denn nun hast du "befohlen", dass der asuro ausweicht, wenn kein schalter gedrückt ist.
    Ich denke wenn du das änderst müsste es eig funktionieren.

    MfG

    Jan

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad