-         

Ergebnis 1 bis 5 von 5

Thema: Problem mit Kollisionstaster

  1. #1

    Problem mit Kollisionstaster

    Anzeige

    Hallo liebe Bastler....ich hab folgendes Problem: Ich wollte meinen ASURO so programmieren, dass er einem gegenstand hinterherfährt.D.h. die Taster müssen immer gedrückt sein und wenn z.B. der ganz linke Taster gedrückt wurde ist es ja logisch das er ne kleine links Kurve fahrn muss.Ich hab keine Ahnung auf dem Gebiet und joa^^....hab was programmiert nur iwie will das nich so wie ich will.Bei mir macht der iwie gar nix...nur die LED leuchtet grün auf.Achja und ich hab in einem anderen Beitrag gesehn das man C7 und C6 rauslöten kann/ soll wie auch immer....das habe ich gemacht weil das dann besser funktionieren sollte ...ich hoffe das wird mir jetzt nich zum verhängnis....denn das einlöten wird ziemlich schwierig^^...also ich hoffe ihr könnt mir helfen achja und hier is das programm:

    Code:
    #include "asuro.h"
    int main (void) {
    		unsigned char taste;
    		Init();
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);
    	while (PollSwitch!=0){
    		taste= PollSwitch();
    		if ((taste>1) && (PollSwitch()>1) && (taste<32) && (PollSwitch()<32)) {
    			MotorSpeed(120,120);}
    	else if ((taste==1) && (PollSwitch()==1)) {
    		MotorSpeed(200,150);}
    	else if ((taste==32) && (PollSwitch()==32)){
    		MotorSpeed(200,120);}
    	else {
    		MotorDir(FWD,FWD);
    		MotorSpeed(120,120);}
    	}
    }

  2. #2
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    du solltest nicht beide auslöten, sondern nur den der direkt parallel zu den tastern geschaltet ist. wenn beide raus sind, wird das eher stören.

    das problem an deinem programm ist, dass der asuro gar nicht erst losfährt: wenn nämlich keine taste gedrückt ist, bleibt er stehen bzw geht in einen ndefinierten zustand, da das programm einfach beendet wird (was mei einem mikrocontroller nie passieren darf!!).

    ausserdem dürfte sich das programm nicht ohne warnings kompilieren lassen, oder?

    hast du gespeichert bevor du kompiliert hast?
    kleinschreibung ist cool!

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.01.2008
    Alter
    26
    Beiträge
    239
    hallo sherminator

    while (PollSwitch!=0) heißt,dass er alles was in den {} -Klammern steht nur durchlaufen wird wenn kein Taster gedrückt wird! Das heiß so bald du einen Taster drücktst (das soll bei dir immer der Fall sein, wenn ich es richtig verstanden habe) springt er ans Ende der Schleife, und das ist auch das Ende des Programmes, darum tut sich nichts.
    ich würde eher scheiben while(1) (das ist eine Endlosschleife, das heißt er wieder holt sie immer) und darin dein Programm.

    weiters sollte man am Ende immer ein while(1); return 0; schreiben (erklärung siehe Anleitung)

    mfg hai1991

  4. #4
    soo hab jetzt C6 und C7 wieder eingelötet und das programm überarbeitet so wie ihr es gesagt habt....funktioniert auch alles so wie es sollte.....big thx ihr habt mir echt geholfen

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Jena
    Alter
    31
    Beiträge
    3.912
    kein problem. willkommen im forum, und noch viel spaß...
    kleinschreibung ist cool!

Berechtigungen

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