PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Asuro Coding Probs Sammelthread



duhh
16.08.2005, 13:26
Ich dachte mir ich mache hier mal einen Sammelthread auf für kleinere Coding Probs des Asuro, welche schnell beantwortet werden können ohne dass groß ein anderer Aufgemacht werden muss.

Ich fang direkt mal an ;)

Wie lese ich den Linken Switch (K1) aus?
theorethisch müsste

sw = PollSwitch();
if (sw == 0x32)
dosomething();

funzen. Tut es aber nicht. Mit sw == 0x01 wird der rechte (K6) jedoch korrekt ausgewertet. ???

m.a.r.v.i.n
16.08.2005, 13:52
Hallo duuh,

if (sw == 32) // dezimal
wäre richtig, oder
if (sw == 0x20) // hexadezimal

Gruß m.a.r.v.i.n

Vogon
16.08.2005, 22:10
sw = PollSwitch();
if (sw == 0x32)
dosomething(); ???
Schau doch mal nach ob dein Asuro überhaupt 32 liefert.
PrintInt(sw);
Hat bei meinem 34 gebracht.
Das kannst du in der asuro.c berichtigen.
Schau dir dort die Function Pollswitch() an. Ich habe die Konstanten 63 in 65 geändert.

alt: return ((10240000L/(long)i-10000L)*63L+5000L)/10000;
neu: return ((10240000L/(long)i-10000L)*65L+5000L)/10000;

payce
16.08.2005, 23:41
Ööööhm, also ich hab das Pollswitch Prob so gelöst (meiner hat 15 statt 16 und 31 statt 32 ausgegeben - bei den entsprechenden Tastern):

if (sw > 0) {Switch1gedrückt}
if (sw > 1) {JuppSwitch2}
if (sw > 2) {blaaaa}
if (sw > 4) ...
... 8
... 16

So umgeht man mal etwaige Widerstandstoleranzen und das Proggi wird zu so ziemlich allen Asuros kompatibel. Funzt gut und verwende ich seitdem standardmäsig.

duhh
17.08.2005, 22:14
No1 Tipp!
Klappt auch wunderbar. Thx!

-> nächste frage? :)