PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Taster gibt falschen Wert



HAWK-Matze
29.12.2007, 08:49
Mein Taster K1 gibt den Wert 31 raus (nicht 32).
Gehe ich recht in der Annahme, dass der Widerstand R25(2k) bei mir wohl ein wenig zu groß ist und durch einen etwas geringeren wiederstand (z.B. 1,99k) ersetzt werden müsste? In der Anleitung wurde erwähnt das man das Softwareseitig beheben kann. Wie?

radbruch
29.12.2007, 10:43
Hallo

Die Taster können kallibriert werden. In der Datei asuro.c wird mit einer Formel am Ende der Funktion PollSwitch() der Messwert i in den Rückgabewerte der Funktion umgerechnet:

//return ((unsigned char) ((( 1024.0/(float)i - 1.0)) * 61.0 + 0.5));
//return ((10240000L/(long)i-10000L)*61L+5000L)/10000;
return ((10240000L/(long)i-10000L)*63L+5000L)/10000;

Das ist ein Ausschnitt aus meiner asuro.c. Im allgemeinen reicht es, wenn man den 60er-Wert variiert. Weiter Infos dazu gibt's z.B. im asurowiki (http://www.asurowiki.de/pmwiki/pmwiki.php/Main/Tasten) (Das hier verwendete "MY_SWITCH_VALUE" gibt es erst in der aktuellen Version der Library und wurde eingeführt um diesen Wert ohne Eingriff in asuro.c beeinflussen zu können.).

Gruß

mic

sloti
29.12.2007, 10:44
Hi Hawk-Matze,

ich habe dasselbe Problem. Wenn ich eine Tasterabfrage mache und die Taster erkennen will geb ich beim letzten immer Werte bereiche an


a=PollSwitch();
b=PollSwitch();
if ((a==b)&&(b>=25)&&(b<=32)){...} . So funktioniert das bei mir ohne Probleme.

mfg
Erik

radbruch
29.12.2007, 10:47
Hallo

Das ist natürlich auch möglich, aber bei der Abfrage mehrerer gleichzeitig betätigter Tasten eher quälend. >25 würde für Taste 1 auch genügen...

mic

HAWK-Matze
29.12.2007, 11:14
Ja so habe ich das bisher auch gemacht, aber auf dauer will das schon vernünftig lösen... habe das mit der #define MY_SWITCH_VALUE nicht hinbekommen, habe da mitlerweile 70 stehen und es ändert sich nichts... ich verwende die neueste bibliothek, kann es sein, dass da die myasuro.h nicht includet ist?

Das ist seltsam, ich kann die pollswitch funktion in switches umbennen und es tritt kein fehler auf... da stimmt doch was nicht

radbruch
29.12.2007, 11:27
Hallo

Ich verwende die aktuelle Library nicht. Soweit ich weiß, muss man die Lib neu kompilieren damit die Änderung wirksam wird. Such mal im Forum nach "MY_SWITCH_VALUE", da gibt's schon ein paar Threads zum Thema. Ich kann aber nicht beurteilen, welcher davon dein Problem beheben könnte.

Wenn du in der Formel den Wert direkt hart änderst sollte sich wenigsten etwas ändern.

Gruß

mic

HAWK-Matze
29.12.2007, 11:48
Ich sag nur
1 2 4 8 16 32
und danke!
Ja man musste die lib neu kompilieren!
Schön schön