Archiv verlassen und diese Seite im Standarddesign anzeigen : Tastsensoren Kapput
Die Tastsensoren geben ja Bitinformationen weiter, bin ich richtig in dieser annahme? Kann es sein das bei mir ein Taster nicht richtig Funktionert.
Ich weiss nicht genau wie diese Taster funktionieren aber ich glaube das
der erste den wert 1 oder null hat der zweite noch mehr einsen und nullen de Prozessor checkt jez wo etwas auf 1 oder 0 ist er nimmt die aktion wo er mehr gleiche Zahlen findet
Das heisst bei mir: Kann das sein das nicht immer schön alle Bits richtig ausgelesen werden und so der Taster ohne zu Drücken sozusagen aktiv wird?
radbruch
14.07.2007, 01:35
Hallo
Ja, das könnte sein. Die Taster sind jeweils einem Bit zugeordnet:
K1-32 (=Bit5)
K2-16
K3-8
K4-4
K5-2
K6-1 (=Bit0)
Das sollten die Werte sein die PollSwitch() liefert. Manche asuros haben aber wegen Bauteiletoleranzen abweichende Werte. Lass dir mal mit PrintInt(PollSwitch()) (ich hoffe, das übersteigt nicht deine Kentnisse) die Werte deiner Tasten anzeigen. Wenn nötig, kann man die Tasten in der asuro.c "kalibrieren", aber dazu must du wissen, welche Werte von den einzelnen Tasten geliefert werden. Hier wird das alles recht gut erklärt:
http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Tasten
Gruß
mic
Sternthaler
14.07.2007, 01:45
Und mit dem Programm aus diesem Beitrag (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=31073) kann dir der Asuro mit dem Test 1 den Wert zum "kalibrieren" sogar selber bestimmen.
Ist der Wert für MY_SWITCH_VALUE den du in die Formel in dem von radbruch angegebenen Beitrag nutzen solltest.
Viel Erfolg.
Wenn du dir die AD Werte ansiehst, merkst du dass die Werte für kein Taster und Taster1 gedrückt sehr knapp beieinander liegen.(soweit ich mich erinnern kann war es 1023 für keinen Taster und 1015 für Taster 1).
Durch leichte Schwankungen kann die Funktion Pollswitch da schnell mal behaupten, dass ein Taster gedrückt wurde, obwohl das gar nicht so ist.
Ich hab mir da eine kleine Funktion gebastelt, die solche Schwankungen ausgleicht indem sie 2 mal prüft, ob der von Pollswitch zurückgegebene Wert korrekt ist.
unsigned char fkt_taster(void)
{
unsigned char taster=0;
taster=PollSwitch();
if(taster==PollSwitch() && taster!=0)
return taster;
else
return 0;
}
Grüße,
Harri
Sternthaler
16.07.2007, 01:26
Hier mal zu Vergleichszwecken die Daten meiner 6 Tasten:
T6 677 (links, von oben auf den Asuro gesehen)
T5 815
T4 910
T3 964
T2 993
T1 1009 (rechts, von oben auf den Asuro gesehen)
Die ergeben dann einen Umrechenwert für die PollSwitch()-Funktion von 63.
Kapput wird richtig kaputt geschrieben ](*,)
Sternthaler
16.07.2007, 13:25
Hallo Thomas,
nett, dass du die Rechtschreibung kannst.
Dann kann ich dir das hier (https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=30949) nur empfehlen.
damaltor
16.07.2007, 19:40
Die Tastsensoren geben ja Bitinformationen weiter, bin ich richtig in dieser annahme? Kann es sein das bei mir ein Taster nicht richtig Funktionert.
Ich weiss nicht genau wie diese Taster funktionieren aber ich glaube das
der erste den wert 1 oder null hat der zweite noch mehr einsen und nullen de Prozessor checkt jez wo etwas auf 1 oder 0 ist er nimmt die aktion wo er mehr gleiche Zahlen findet
](*,) Anleitung lesen?
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.