Hallo

Zitat Zitat von NATHAN
if (t1 & 0x07)
if (t1 & 0x3

Dabei ist das & kein Vergleich sondern eine logische UND-Verknuepfung. Das Ergebniss wird dabei eins, wenn alle Bedingung eins sind. Verknuepft man Zahlen wie z.B. 17 und 13 oder beliebige andere mit Ausnahme von Null, dann erhaelt man immer eine eins. Also ist die Bedingung immer wahr (t1 hat ja im Kollisionsfall immer einen Wert).
Hallo NATHAN, ich muss ein bisschen korrigieren.
Das & ist zwar tatsächlich kein Vergleich, aber es verknüpft in C jedes einzelne Bit einer Variablen. Nur das && ist ein logisches UND mit den jeweiligen logischen Gesamtwerten der zu vergleichenden Variablen.

Hier mal als duales Bitmuster:
0x07 ensprechen [00]000111
0x38 ensprechen [00]111000
Die in Klammern gesetzten 0-en existieren nicht als Taster. Die anderen 0-en und 1-en stellen somit die 6 Taster vom Asuro dar, und die 0x-er Werte wurde so gewählt, dass entweder die 3 linken oder eben die 3 rechten Taster 'maskiert' werden können.

Drückt man auf der linken Seite einen Taster, kommt z.B. folgendes raus
[00]010000
&
[00]000111
--------------
[00]000000 <-- Dieses Ergebniss ist in der Abfrage aber FALSE. Egal welche der 3 linken Tasten gedrückt wurde.

Die gleiche Taste nun mit 0x37 verglichen ergibt:
[00]010000
&
[00]111000
-------------
[00]010000 <-- Dies ist TRUE als Ergebniss.

Somit liegt es (zum Glück) doch am Taster, welcher Programmteil durchlaufen wird.

Zitat Zitat von NATHAN
Verwendet ihr beide die gleiche lib-Version?? Msleep ist naemlich in der beim Kauf mitgelieferten Library noch gar nicht vorhanden.
Wenn Msleep nicht vom Linker gefunden würde, würde keine hex-Datei zum Schluß rauskommen.

@Meur
Im Übrigen:
Das Programm vom 14.07.2007, 10:42 funktioniert hervorragend. (Auf meinem Asuro)

Jetzt bleiben doch wirklich nur noch die Tasten bzw. die Umrechnung in PollSwitch() übrig, wie radbruch schon vermutete.
Ich habe in diesem Thread ein Programm gepostest, mit dem, unter anderem, der beste Wert für den Umrechenfaktor in der PollSwitch()-Funktion ermitteln werden kann. (Test 1 liefert den Wert.)