-         

Ergebnis 1 bis 7 von 7

Thema: ASURO Kollisions Problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    16.11.2011
    Beiträge
    26

    ASURO Kollisions Problem

    Anzeige

    Hallo,
    ich hab ein Problem mit den kollisions tastern meines ASUROs: ich muss sie gedrückt halten damit er die schritte ausführt die er soll:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	int n = 0, g = 0;
            Init();
            MotorSpeed(255,250);
    	while (n<100){
            if(g>0){
            MotorDir(RWD,RWD);
            Sleep(72000);
            MotorDir(RWD,BREAK);
            Sleep(72000);
            g=0;
            }
            MotorDir(FWD,FWD);
            unsigned char taste;
            taste = PollSwitch();
            if (taste>0){
            g=g+1;
            }
            }
            while(1);
    	return 0;
    }
    Was mache ich falsch?
    Geändert von SuperManitu (30.03.2012 um 18:19 Uhr)

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Sleep(72000);

    Da sollte zumindest ein Fehler beim Kompilieren auftreten. Programm gespeichert vor dem Kompilieren?

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

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    16.11.2011
    Beiträge
    26
    ja, aber als ich es mit winAVR komplitiert habe gab es kein problem.
    Es lies sich auch ohne weiteres auf den asuro übertragen.

  4. #4
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Es gibt nur Warnungen, weil der Parameter für Sleep() größer als 8 Bit ist.

    So vielleicht?

    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	unsigned char taste;
    	int g = 0, i;
    
    	Init();
    	MotorSpeed(255,250);
    	while (1){
    		if(g>0){
    			MotorDir(RWD,RWD);
    			i = 1000;
    			while(i--) Sleep(72);
    			MotorDir(RWD,BREAK);
    			i = 1000;
    			while(i--) Sleep(72);
    			g = 0;
    			StatusLED(GREEN);
    		}
    		MotorDir(FWD,FWD);
    		taste = ((PollSwitch() > 0) && (PollSwitch() > 0));
    		if (taste){
    			g = g+1;
    			StatusLED(RED);
    		}
    	}
    	while(1);
    	return 0;
    }

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

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    16.11.2011
    Beiträge
    26
    Danke, es hat funktioniert.
    Aber was habe ich falsch gemacht?

  6. #6
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    54
    Beiträge
    5.781
    Blog-Einträge
    8
    Ich vermute, dass eigentliche Problem war Sleep(72000); Hier "weiß" der Kompiler nicht, was er als Wert einsetzen soll, weil der 8-bit Parameter nur von 0 bis 255 reicht. Da ein Sleep(72) eine 1/1000 Sekunde dauert wird es in einer Schleife 1000 mal wiederholt:

    i = 1000;
    while(i--) Sleep(72);

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

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    16.11.2011
    Beiträge
    26
    Danke, jetzt verstehe ich.
    /close

Ähnliche Themen

  1. Antworten: 18
    Letzter Beitrag: 06.05.2012, 19:40
  2. [Asuro] Problem: test.c und asuro.c compilieren
    Von Jonas Münch im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 17.05.2010, 10:34
  3. kollisions programm
    Von cele93 im Forum Asuro
    Antworten: 12
    Letzter Beitrag: 06.02.2010, 17:16
  4. Asuro Problem
    Von hihacker im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 01.02.2010, 15:30
  5. anfang einer kollisions-routine
    Von malediction im Forum Asuro
    Antworten: 9
    Letzter Beitrag: 16.01.2009, 10:22

Berechtigungen

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