- LiTime Speicher und Akkus         
Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 24

Thema: C-Anfänger braucht Hilfe

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2006
    Beiträge
    11

    C-Anfänger braucht Hilfe

    Anzeige

    Praxistest und DIY Projekte
    Ich wollte, dass Asuro beim starten die Status LED auf Grün schaltet und dann losfährt. Wenn ein Schalter betätigt wird, dann soll er mit allen roten leuchten was er hat und bremsen. Leider tut er dies nicht...er fährt immer weiter..
    Hab ich einen fehler im Code? (fange erst mit c an..)
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	Init();
    	
    	StatusLED (GREEN);
    	MotorDir (RWD,RWD);
    	MotorSpeed (120,120);
    	
    	
    	if (PollSwitch()>0)
    	{StatusLED (RED);
    	BackLED (ON,ON);
    	MotorDir (BREAK,BREAK);   //hier bin ich mir nicht genau sicher
    	MotorSpeed (0,0);
    	}
    	
    	while(1);
    	return 0;
    }
    Ich bitte um Hilfe, sitz jetz 2 Tage am zusammenbaun und fehlerkorigieren, jetz würds mich freuen wenn es funktioniert und ich dann schlafen gehen kann. ^_^

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    (1) wiseo nimmst du MotorDir(RWD,RWD), wenn du das weitverbreitete problem hast, das die motoren falschrunnm drheh, solltest du lieber die motorkabel umlötne
    (2) Der code sieht eigentlcih doch ganz gut aus, vieleich postest du mal eine beschreibung, was der asuro bei dir denn macht
    (3)haben die taster beim seelbst test FEHLERFREI funktioniert?

    probier mal obs geht, wenn du MotorDir(BREAK,BREAK) rasulässt


    mfg EDH

    ps. schlafen wäre um diese zeit nötig. schon von wegen weil ich morgen früh wider in der schule anzutreten habe.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    48
    Beiträge
    1.146
    So, wie Du das geschrieben hast, macht er nach dem Start die if-Abfrage nur genau ein mal und bleibt dann auf ewig in der leeren while(1)-Schleife gefangen.

    Die if-Abfrage muss in die while-Schleife, damit er diese Abfrage immer wieder durchführt.

    Gruß,
    askazo

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    01.11.2006
    Beiträge
    433
    vor müdigkeit hab ich das wohl übersehen. vergiss am besten alles was ich geschrieben habe

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2006
    Beiträge
    11
    Erstmal, danke.

    1. Ich nehme Rwd weil ich zwar die motorkabeln richtig angelötet habe, aber sie trotzdem verkehrt drehn. ^^' (Muss ich morgen genau nachschaun, aber ich kann mich genau drann erinnern.. *grml*) -ist aber nicht so schlimm.

    2. Er schaltet auf Grün und dann fährt er. und fährt und fährt...
    Egal welchen schalter ich drücke.

    3. Ja eigentlich schon, dass einzige das mir einmal aufgefallen ist, ist das er bei den beiden linken Schaltern (Wo die Status LED auf Grün+Rot bzw Orange schaltet) wenn ich beide drücke (also Orange) sich der eine Moter mitdreht.

    edit: Ich mit meinen langsamen Tippen.
    @EDH: trotzdem THX
    @askazo.. mal testen.. melde mich dann.. *gg+

    edit2:

    #include "asuro.h"

    int main(void)
    {
    Init();

    StatusLED (GREEN);
    MotorDir (RWD,RWD);
    MotorSpeed (120,120);



    while (PollSwitch()>0)
    {StatusLED (RED);
    BackLED (ON,ON);
    MotorSpeed (0,0);
    }



    return 0;
    Richtig? Wenn ja, geht aber ned -.-


    edit3:
    Code:
    #include "asuro.h"
    
    int main(void)
    {
    	Init();
    	
    	StatusLED (GREEN);
    	MotorDir (RWD,RWD);
    	MotorSpeed (120,120);
    	
    	
    	
    	while (1)
    {	
    	if(PollSwitch()>0)
    	{StatusLED (RED);
    	BackLED (ON,ON);
    	MotorSpeed (0,0);
    	}
    }	
    	
    	
    	return 0;
    }
    so? ^^'

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    02.11.2005
    Alter
    48
    Beiträge
    1.146
    Ja, der letzte Code sollte gehen...

    askazo

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2006
    Beiträge
    11
    Zitat Zitat von askazo
    Ja, der letzte Code sollte gehen...

    askazo
    Da fängt er gleich komplett Rot an zu leuchten und fährt gar nicht los...

    edit:
    Werd mich morgen drumm kümmern, ich finde den Fehler nicht. (Werde morgen das Testprogramm nochmal flashen..)

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    09.11.2006
    Beiträge
    20
    Rufe PollSwitch(); noch einmal vor der while(1) Schleife auf !

    Code:
    #include "asuro.h"
    
    int main(void)
    {
       Init();
       
       StatusLED (GREEN);
       MotorDir (RWD,RWD);
       MotorSpeed (120,120);
       
       
       PollSwitch();
       while (1)
    {   
       if(PollSwitch()>0)
       {StatusLED (RED);
       BackLED (ON,ON);
       MotorSpeed (0,0);
       }
    }   
       
       
       return 0;
    }
    Wenn das nicht geht , versuchs hiermit :

    Code:
    #include "asuro.h"
    
    int main(void)
    {
       Init();
       
       StatusLED (GREEN);
       MotorDir (RWD,RWD);
       MotorSpeed (120,120);
       
       
       
       while (1)
    {   
    PollSwitch();
       if(PollSwitch()>0)
       {StatusLED (RED);
       BackLED (ON,ON);
       MotorSpeed (0,0);
       }
    }   
       
       
       return 0;
    }

  9. #9
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.062
    das problem, dass trotz richtig angelöteter motorenkabel diese verkehrt herum drehen, haben viele. ich selbst habe 2 asuros zusammengebaut und hatte das problem bei beiden.

    umlöten sollte seinl, dann laufen auch fremde programme richtig.

    die meisten programme oben sollten funktionieren, das problem ist dass pollswitch gelegentlich falsche werte ausgibt. mehrmaliges aufrufen vor der eigentlich wichtigen abfrage hilft.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    12.11.2006
    Beiträge
    11
    Das mit den Motoren werd ich beheben...

    Also, hab jetz nochmal den den SelfTest geflasht.. Taster gehen alle...

    Dann hab ich beide Programme geflasht, wie sie normalerweise gehen sollten, doch er fängt nicht amal an zu fahren sondern schaltet gleich die Status und die Back LEDs auf Rot. -.-

    vllt mach ich was falsch? (ich machs bestimmt -sonst würds gehen)

    Ich übernehms im notepad, speichre es über test.c (verädnre ned den namen)
    make.. und dann wähl ich die hex datei aus im flash prog und flashe alles richtig
    o.o
    bin ratlos

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

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

LiTime Speicher und Akkus