Hallo
Hallo NATHAN, ich muss ein bisschen korrigieren.Zitat von NATHAN
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.
Wenn Msleep nicht vom Linker gefunden würde, würde keine hex-Datei zum Schluß rauskommen.Zitat von NATHAN
@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.)
Lesezeichen