-
        

Ergebnis 1 bis 6 von 6

Thema: Tastfunktion beim Asuro

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32

    Tastfunktion beim Asuro

    Anzeige

    Hallo!
    Ich hab ein Problem (war ja klar ).
    Ich habe folgendes Programm geschrieben:
    Code:
    #include "asuro.h"
    #include "stdlib.h"
    
    
    int main(void)
    {
    unsigned int i, taster=0;
    Init();
    MotorDir(FWD,FWD);
    MotorSpeed(120,123);
    PollSwitch();
    while (taster==0)
    {
    taster=PollSwitch();
    }
    MotorSpeed(0,0);
    	while(1);
    	return 0;
    }
    Wie man sieht, ein sehr primitives Programm, welches einfach regeln soll, das die Motoren abschalten, wenn ein Taster gedrückt wird.
    Aber leider bleibt der Asuro immer völlig zufällig einfach irgendwann stehen, also ohne Tasterdruck oder manchmal fährt er gar nicht erst los. Eigentlich ist das Programm so, wie die Beispielprogramme hier im Forum und in der Anleitung, aber er will das nicht so machen. [-(

    Alternativ hab ich mir mal ausgeben lassen, wie die Tasterwerte so sind, aber die sind eigentlich immer 0, also das es eigentlich keine Schaltungsfehler seien können (also Kurzschlüsse o.ä.).

    Weiß jemand Rat, wieso mein Asuro nicht so will wie ich?

    Danke und Tschö

    Norki


    P.S.:
    Kurzer Zwischenstand:
    Grade nach weiteren Tests hat er zum einen ohne Kollision ne 1 ausgegeben (also die PollSwitch Funktion) und ich würde behaupten, es liegt an der Last. Also wenn ich ihn in der Luft halte, läuft er durch, muss er wirklich fahren funktioniert es nicht zuverlässig.
    Kennt das jemand?

  2. #2
    Gast
    Hallo Norki,
    ich hatte mal die Zahnräder falsch aufgesteckt (es sind zwei verschiedene Typen mit unterschiedlichem Ritzel). Dann lassen sich die Räder nicht mehr so leicht drehen und der Asuro fährt erst bei hohem SPEED an. Vielleicht hilft es Dir weiter.
    Gruss Klecksinger

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32
    Hallo!
    Ne, die Zahnräder sind schon richtig dran.

    Aber ich habe gestern nachmal das Forum durchforstet und bin auf folgenden Eintrag gestoßen:

    http://www.roboternetz.de/phpBB2/viewtopic.php?t=15753

    Da steht, die Toleranzen und Spannungsschwankungen sind schuld an falsch interpretierten Tastwerten. Das deckt sich ja auch mit meinen Beobachtungen, nämlich, dass unter Last der Fehler passiert.
    Ich habe deswegen mal die erweiterte Bibliothek genutzt, da dort der Rückgabewert der Funktion besser hinkommt, also bisher geht es... [-o<

    Aber leider habe ich jetzt auf den linken 3 Tastern falsche Werte, nämlich 7,15,30. Das wäre an sich ja nicht so schlimm, damit kann ich leben.

    Aber jetzt eine andere Idee. Könnte man diese Spannungseinbrüche(sind es welche? ) nicht damit abfangen, indem man hinter die Stromversorgung einfach einen dicken Kondensator hängt?

    gruß
    Norki

  4. #4
    Benutzer Stammmitglied
    Registriert seit
    16.07.2005
    Ort
    Solingen
    Alter
    48
    Beiträge
    61
    Hi Norki,

    schau mal unter http://asuro.pytalhost.de/pmwiki/pmw...astSensorTestC

    Hier findest du ein paar Hinweise zu deinem Problem als Quelltextkommentar.

    Hope it helps,

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    12.05.2006
    Beiträge
    32
    Hi!
    Danke nochmal dafür, ich habe das Problem mittlerweile eigentlich ganz gut unter Kontrolle, habe aber jetzt nochmal eine Frage, die eher grundsätzlich c betrifft.
    Und zwar wird bei diesem PollSwitch Problem, die Bedingung für eine Schleife häufig so gewählt :

    (t1 && t2 && t1 == t2)

    Was bedeutet das genau? Klar ist mir schon das "&&" das logische und und == das logische gleich sind, aber was sagt diese Bedingung in Worten aus?
    "t1 und t2 und t1=t2" ????

    Warum davor "t1&&t2"? Soll da alles gleich sein? Wäre ja das erstrebenswerte, dass bei zwei Anfragen das gleiche herauskommt, aber dann würde doch t1 == t2 reichen...

    Kann mir das einer erklären?

    gruß
    Norki

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Hallo Norki,

    statt
    (t1 && t2 && t1 == t2)

    könnte man auch schreiben:
    (t1 != 0 && t2 != 0 && t1 == t2)

    Soll heißen t1 muß ungleich 0 sein und t2 ungleich 0 und t1 identisch mit t2.
    Man will ja wissen, ob ein Taster betätigt wurde, und ob 2x der gleiche Tastenwert erkannt wurde. (OK, die Abfrage t2 != 0 könnte man sich eigentlich sparen)

    Gruß m.a.r.v.i.n

Berechtigungen

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