PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Taster funktionieren nicht



Proger
14.08.2007, 15:29
Hallo, irgendwie funktionieren meine Taster nicht. Aber das erst seit heute, gestern hasts noch geklappt. Was kann da nicht richtig angeschloßen oder so was sein.
Kann mit jemand seinen Code für Tasterabfrage geben, falls er nicht der selbe ist wie auf der Anleitung.
Ich habe die 2.1 Version (die neue geht nicht)
Mfg.

zumgwadrad
14.08.2007, 15:41
Hi,
du musst von deinen Tastern aus Richtung µC und Spannungsversorgung den Durchgangswiderstand der Leitungen messen! Erst die komplette Strecke und dann die in der der Widerstand unnatürlich hoch ist in immer kleineren Schritten und dann gehts!
Klingt auf jeden Fall schwer nach Hardwarefehler wenns gestern ging und heute nicht!
Hast du sicher nichts am Prog geändert? Spiel zur Not des Prog in der Version von gestern auf!
Viel Erfolg

Proger
14.08.2007, 15:51
Hallo, gemessen hab ich schon. Passt (leider).
Denn Code von gestern... ja... ä...ja den hab ich nicht mehr-überschrieben
Aber gestern gabs hin und wieder auch Probleme. Ich habe den Standard Code mit PollSwitch(). Gibts da was anderes(Außer selber proggen)???

Noch ne Frage: Ist Msleep()nur bei der Version 2.7 dabei????????

damaltor
14.08.2007, 16:12
msleepist in allen versionen, die hier im forum rumgeistern, dabei. auf der cd ist sie nicht.

trotzdem empfehle ich die version 2.7, einer der aktuellen threads beschreibt gaz exakt die einrichtung.
durch die neue lib werden die hex-files kleiner, und es gibt viele neue funktionen.

Proger
14.08.2007, 16:38
ja mach ich, leider hilft mir das bei meinem eigentlichen Prob nicht weiter...

jzd
14.08.2007, 16:55
Was verstehst du denn unter "Standard Code mit PollSwitch()"?
Kannst du den mal reinstellen?

Proger
16.08.2007, 16:18
Hallo,

mit etwas verstpätung hier mein Code:


#include "asuro.h"

int main(viod)
{
Init();
MotorSpeed(100,100);
FrontLED(ON);
while(1)
{
if (PollSwitch()==0)
{
MotorDir(FWD,FWD);
StatusLED(GREEN);
}
else
{
MotorDir(BREAK,BREAK);
BackLED(ON,ON);
StatusLED(RED);
}
}
}

Dies ist nur eine Variante von vielen. In den letzten Tagen habe ich viele ausprobiert aber alle verhielten sich ähnlich wie diese, nämlich:
Es passiert gar nix. d. h. er führt sofort den else Block aus oder es sind eben die Taster hinüber.

Mfg. Proger

jzd
16.08.2007, 17:31
Hast du es schon mal mit der Probiert?


#include <asuro.h>

int main(void)
{
unsigned char t1, t2;
Init();
MotorDir(FWD,FWD);
MotorSpeed(190,190);
while(1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if(t1 && t2 && t1 == t2)
{
MotorSpeed(0,0);
BackLED(ON,ON);
StatusLED(RED);
return 1;
}
}
return 0;
}

Um ein möglichst genaues Ergebnis zu erhalten sollte man
PollSwitch(); möglichst zweimal (bis 10 mal) ausführen, da die Funktion manchmal
falsche Werte zurückliefert.
Das hängt irgendwie mit dem Kondensator davor zusammen.
Wenn du über den genaueres wissen willst, dann musst du jemand anderes
fragen :oops:
Oder benutz mal die Suche, das Thema wurde, meine ich, schon
öfters mal behandelt.

Proger
17.08.2007, 07:06
Ja hab ich. funktioniert nicht.
Es macht immer nur einen kurzen Ruck (die Räder drehen sich ein paar mm) und dann ist schluß.
Gibt es noch irgendwas, was ich machen könnte?

m.a.r.v.i.n
17.08.2007, 08:57
Hallo,

laß dir doch erst mal im Terminalprogramm ausgeben, was für Werte deine Taster liefern. Evtl. muß die PollSwitch Funktion noch angepaßt werden, oder eine Taste klemmt. Probier dazu das folgende Programm aus und schau die Werte im Terminalprogamm an.



#include <stdlib.h> /* itoa Funktion */
#include "asuro.h"


int main(void)
{
unsigned char t1, t2;
text [7];
int z;

Init();
SerWrite("\r\nTastsensor Test\r\n",19);
while(1)
{
t1 = PollSwitch();
t2 = PollSwitch();
if(t1 && t2 && t1 == t2) /* irgendeine Taste gedrueckt */
{
itoa (t1, text, 10); /* Wert in ASCII wandeln */
SerWrite (text, 2); /* Wert ausgeben */
SerWrite("\r\n", 2); /* Zeilenvorschub ausgeben */
for (z = 0; z < 500; z++) /* 1/2 Sek. warten */
Sleep (72);
}
}
}


Nähere Erklärungen unter:
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/TastSensorTestC

Warum funktioniert die Lib 2.7 bei dir nicht?

Proger
17.08.2007, 09:19
Hallo,

bei mir kommt immer eine 2 und wenn ich die Taster drücke kommt zwischen durch eine andere Zahl:
K1: 4
K2: 12
K3: 6
K4: 52
K5: 16
K6: 9

Ich hätte ja erwartet, dass eine der Taster die belegung 2 hat, dann wäre ja klar was los ist.
Kann mir jetzt vieleicht jemand weiter helfen?

Zu meinem Lib Prob:
Ich habe alles nach Anweisung gemacht aber es geht einfach nicht. Und wenn ich die asuro.c datei dort hinkopiere, dann kann ich sogar nicht mehr flashen.

Mfg. Proger

m.a.r.v.i.n
17.08.2007, 09:35
Hallo,

Die Werte sehen alle recht merkwürdig aus. Vielleicht berühren sich zwei Widerstände auf der Asuro Platine oder es gibt irgendwo einen Wackelkontakt. Wenn du ein Multimeter hast, könntest du die Widerstandswerte nachmessen (bei abgeschaltetem Asuro und ohne Prozessor) und mit dem
Bild (http://home.planet.nl/~winko001/Asuro/Info/Files/Asuro,%20PCB,%20measure%20switches%20resistors.jpg ) vergleichen

Hier mal der Auszug mit den Tastern aus dem Schaltplan
http://www.asurowiki.de/pmwiki/uploads/Main/switches.jpg

Arexx-Henk
17.08.2007, 10:13
@Proger,

Probier mal dieses Program

'Show Asuro switch values in Hyperterminal'
http://home.planet.nl/~winko001/Asuro/Software/AsuSfwPagFrm.htm

Dies produziert die wirklich vom AD-Wandler gemesene Tasten Werte ohne dass die Werte danach von einem Formel umgerechnet und gezeigt werden.

Vergleich mal die gemessene werte mit die im zugehorigen Datei 'AsuroSwitchesV0.01, mManual.txt' angegebene Werte.

Gruss

Henk

Sternthaler
17.08.2007, 18:33
@Proger,
Hier gibt es auch noch ein Programm zum Testen.

Asuro-Programm-Teil misst alle ADC-Kanäle und sendet sie an den PC
PC-Programm-Teil wertet dies aus.

Es sind dort Test-Programme, mit denen du die Werte für die Datei myasuro.h aus der Asuro-LIB ermitteln kannts.
Test 1 ermittelt auch einen optimalen Umrechenwert für die PollSwitch()-Funktion.

Siehe ASURO emittelt Werte für Lib V2.70 myasuro.h selber (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=31073)

Arexx-Henk
18.08.2007, 15:25
@Proger,

...ja...oder nimm dir mal DoctorAsuro...,

damit kannst Du einfach unter Windows die Tasten Werte auslesen und noch so einiges mehr einfach austesten mit nur Mauseklicken...

http://www.arexx.com/arexx.php?cmd=goto&cparam=p_asuro_downloads

Gruss,

Henk

damaltor
26.08.2007, 14:07
proger: nimm mal die batterien raus und miss die widerstände durch, die oben gezeigt sind. die werte sind so weit von den sollwerten entfernt, das kann kein kleiner fehler sein.