-
-
Erfahrener Benutzer
Roboter Experte
if(t1 && t2 && t1 == t2)
ich kann mich irren aber ich denke da 't1' ein 'unsigned char' ist steht hier eigentlich
if( ( t1 != 0 ) && ( t2 != 0 ) && ( t1 == t2 ) )
oder:
if( ( t1 == TRUE ) && ( t2 == TRUE ) && ( t1 == t2 ) )
wenn eine taste gedruckt wird sind t1 und t2 immer TRUE
in asuro.h steht
'#define TRUE 1'
aber jeden 'unsigned char' nicht-null Wert wird vom C-compiler als TRUE interpretiert.
gruss
Henk
-
Neuer Benutzer
Öfters hier
hmm. ich habe das beispeil von einer anderen seite, und es ging wohl darum zu prüfen, dass auch beide Variablen gleich sind also der PollSwitch richtig ausgelesen wurde, da ja t1 und t2 in dem fall gleichs ein müssten, oder?
-
Erfahrener Benutzer
Roboter Experte
Ja, wenn mann sich dass so anschaut musste dass schon stimmen.
Vielleicht braucht mann nicht zweimahl pollswitch an zu rufen wenn mann die verzogerung im pollswitch 'sleep(10)' etwas grosser macht z.B. 'sleep(20)'
Damit wird dann 20 milliseconden gewartet bis das analog Signal sich stabilisiert hat uber die condensator bevor die AD-converter AD-wandlung statt findet.
gruss
Henk
-
Neuer Benutzer
Öfters hier
hmm, hat evtl jmd mal ein programm was tod sicher funktioniert, damit ich mal testen kann, ob da alles mit rechten dingen zu geht???
-
Hallo, (wie auch immer du heissen magst)
um den PollSwitch mehrfach sicher abzurufen mußt Du den Durchschnittswert einer Mehrfachabfrage rannehmen.
int sw = 0;
sw = PollSwitch();
sw = PollSwitch()/2;
sw = PollSwitch()/2;
id (sw>0) // oder wie immer
Auch hatte ich den Fall daß in der downgeloadeden asuro.c und asuro.h die PollSwich Funktion geändert wurde. Nach einfügen der orginal PollSwitch funktion haben meine Taster alle wieder funktioniert.
Und hast Du den selftest Kompiliert oder als Hex geflasht?
Darüber kannst du rausfinden obn Dein Problem in der asuro.c liegt.
Viel Erfolg,
der CLAUDE
-
Ich bin zu doof,
Was ich schrieb is richtig, nur der Code ist falsch.
Hier richtig:
int sw = 0;
sw = PollSwitch();
sw = (sw+PollSwitch())/2;
sw = (sw+PollSwitch())/2;
id (sw>0) // oder wie immer...
Ich sollte heim gehen und schlafen...
Aber vermutlich wird das die 11 Nacht die ich mit meinem ASURO alleine verbringe 
Alas, CLAUDE
-
Neuer Benutzer
Öfters hier
Hi bei mir hat folgendes ganz gut geklappt:
if(PollSwitch()&PollSwitch())
{
// dein Code;
}
Da beim Ansteuern der Motoren die Werte von den Tastern schwanken, kommen seltsame Kombinationen heraus. Hatte auch das Problem, dass er bei jedem vorfahren dachte, ein Taster sei gedrückt.
Das Bitweise verunden sorgt dafür, dass nur die meisten fehlerhaften Kombi´s herausgefiltert werden.
-
Hallo an Alle,
Ich habe mittlerweile eine kleine Waffe für die Pollswitches. Das funktioniert bei mir perfekt.
Hier der Code:
unsigned int taste, taste1, taste2;
taste = 0;
taste1 = PollSwitch();
Msleep(1);
taste2 = PollSwitch();
if (taste1 == taste2)
{taste = taste1;}
Testet den mal, und schreibt wie es läuft,
Alas, der CLAUDE
-
Neuer Benutzer
Öfters hier
danke - werde ich mal machen
-
Neuer Benutzer
Öfters hier
Ein ähnliches Problem plagt mich eigentlich auch.
Es könnte aber auch durchwegs sein dass der Motor nicht richtig montiert ist ich habe ihn auch nicht schön genug mit dem Kabelbinder angemacht und schon übersetzt er seine Umdrehungen nicht richtig aufs große Zahnrad. Damit werde ich mich mal spielen müssen.
Eventuell sollte man auch mal messen ob an beiden Motoren die selbe Spannung abfällt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
-
Foren-Regeln
Lesezeichen