- Labornetzteil AliExpress         
Ergebnis 1 bis 10 von 39

Thema: Programmierung C - Asuro

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Vielen Dank für eure Antworten - ich hab mir schon soetwas gedacht, hab aber nicht recht gewusst wie ich die Sleep-Funktion richtig einsetze - vielen Dank nochmal, auch den Tipp bez. des Codes!

    [EDIT]
    Eines ist mir aber noch unklar - wieso ist da eine Schleife vor dem Sleep? Die bräucht ich in dem Fall ja gar nicht, wenn ich einfach die Sleepzeit mit 1000 multipliziere hab ich ja die Sekunden, oder verstehe ich da was falsch?

    Vielen Dank!
    [/EDIT]
    Geändert von brandy_000 (03.01.2012 um 22:57 Uhr)

  2. #2
    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 for-Schleife macht 1000 mal Sleep(72), wartet also eine Sekunde. Die Sleepzeit kann nicht größer als 255 sein, weil der Parameter für Sleep() ein char ist.
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Ok danke...

    Vielen Dank!

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    So jetzt brauch ich nochmals eure Hilfe!

    Hier mein Code:
    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	Init();
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	StatusLED(GREEN);
    	for(i=0; i>2000; i++) Sleep(72);
    	MotorDir(BREAK,BREAK);
    	MotorSpeed(0,0);
    	StatusLED(RED);
    	while(1);
    	return(0);
    }
    Theoretisch sollte er jetzt losfahren - 2 Sekunden lang fahren und dann bremsen. Macht er aber nicht, sondern nach dem Booten leuchtet sofort die rote LED!
    Vielen Dank nochmal!

  5. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    i>2000

    i ist nie größer als 2000, die Schleife wird deshalb sofort wieder verlassen. Blöd wenn man ungetestete Programme verbreitet. Entschuldigung. Richtig wäre

    for(i=0; i<2000; i++)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Ok das hätte ich auch selbst sehen können!
    Danke nochmal!

  7. #7
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    Vielen Dank er fährt jetzt so wie ich das möchte.
    Jetzt wollte ich eine kleine Modifikation machen und mal was mit den Kollisionsdinger machen:

    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	
    	Init();
    	
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	StatusLED(GREEN);
    	if ((PollSwitch()!=0) || (PollSwitch()!=0) || (PollSwitch()!=0))
    	{
    	  MotorDir(BREAK,BREAK);
    	  MotorSpeed(0,0);
    	  StatusLED(RED);
    	for(i=0; i<1000; i++) Sleep(72);
    	  MotorDir(FWD,BREAK);
    	  MotorSpeed(100,0);
    	  StatusLED(GREEN);
    	}
    	while(1);
    	return(0);
    Jedoch fährt er mir jetzt durch, was nicht sein sollte - aber laut einem anderem Forum, soll man die Abfrage mehrmals, oder so wie oben machen, da verschiedene Werte zurückkommen und man das so umgehen könnte (suchs euch nochmals raus, wenn ihr wollt).

    Weiters hab ich eine generelle Frage - arbeitet ihr noch immer in der test.c? Welche Dateien von der Original-Cd sind essentiell? Hab diese hier rüberkopiert:

    file:///home/davidb/Asuro/AsuroFl.ini
    file:///home/davidb/Asuro/Test-all.bat
    file:///home/davidb/Asuro/Test-clean.bat
    file:///home/davidb/Asuro/asuro.c
    file:///home/davidb/Asuro/asuro.d
    file:///home/davidb/Asuro/asuro.h
    file:///home/davidb/Asuro/asuro.lst
    file:///home/davidb/Asuro/asuro.o
    file:///home/davidb/Asuro/makefile
    file:///home/davidb/Asuro/test.c
    file:///home/davidb/Asuro/test.c~
    file:///home/davidb/Asuro/test.d
    file:///home/davidb/Asuro/test.eep
    file:///home/davidb/Asuro/test.elf
    file:///home/davidb/Asuro/test.hex
    file:///home/davidb/Asuro/test.lss
    file:///home/davidb/Asuro/test.lst
    file:///home/davidb/Asuro/test.map
    file:///home/davidb/Asuro/test.o
    file:///home/davidb/Asuro/test_original.c

    Brauch ich da wirklich alles? test.c ist ja meine und asuro.h brauch ich ja auch...

    Macht ihr euch eigentlich eigene Programme? Was müsste ich dazu beachten. Ist es überhaupt ratsam, weil normal reicht es ja aus, wenn man immer in der test.c arbeitet, man kann sie anders abspeichern wenn man verschiedene Programme abspielen will...

  8. #8
    Benutzer Stammmitglied
    Registriert seit
    02.01.2012
    Beiträge
    31
    So jetzt hab ich noch eine Modifikation gemacht, doch das If wird bei Kollision trotzdem nicht ausgeführt. Fahren tut er brav!
    Code:
    #include "asuro.h"
    
    int i;
    
    int main(void)
    {
    	
    	Init();
    	
    	if (PollSwitch()==0 && PollSwitch()==0 && PollSwitch()==0 && PollSwitch()==0) 
    	{
    	MotorDir(FWD,FWD);
    	MotorSpeed(200,200);
    	BackLED(ON,ON);
    	}
    	
    	if (PollSwitch()!=0 && PollSwitch()!=0 && PollSwitch()!=0 && PollSwitch()!=0) 
    	{
    	  MotorDir(BREAK,BREAK);
    	  MotorSpeed(0,0);
    	  StatusLED(RED);
    	  MotorDir(FWD,BREAK);
    	  MotorSpeed(100,0);
    	  StatusLED(GREEN);
    	}
    	
    	while(1);
    	return(0);
    }
    Geändert von brandy_000 (04.01.2012 um 18:32 Uhr)

Ähnliche Themen

  1. Asuro Programmierung
    Von Berghuhn im Forum Asuro
    Antworten: 18
    Letzter Beitrag: 15.10.2010, 06:04
  2. Asuro Programmierung
    Von Hannes1984 im Forum Asuro
    Antworten: 0
    Letzter Beitrag: 12.05.2009, 21:35
  3. ASURO Programmierung
    Von teufeldd im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 2
    Letzter Beitrag: 04.04.2007, 10:02
  4. Probleme mit Asuro programmierung
    Von Paripah im Forum Asuro
    Antworten: 2
    Letzter Beitrag: 12.05.2006, 14:10
  5. ASURO-Programmierung
    Von baschi-1,3 im Forum Asuro
    Antworten: 3
    Letzter Beitrag: 20.04.2006, 12:48

Berechtigungen

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

LiFePO4 Speicher Test