Ich habe noch etwas langer daruber gedacht, und da fehlt etwas in deiner taster logik. Kein problem, binaire zahlen ist auch nicht einfach fur anfanger.
Code:
else if (PollSwitch()>31) /* Taster Links-außen wird gedrückt */
Pollswitch()>31 meinst nicht nur 'gleich 32', oder 'das muss meiner linker taster sein'. Aber auch vieleicht 'gleich 43 oder 50, 58, 63, 64, 128, 201 usw. bis 255'. Pollswitch gibt einer wert zuruck als char typ. Das könnte im prinzip werte sein von 0 bis 255 (inklussif). Asuro hat aber nur 6 taster. Dafur braucht man auch nur 6 bits in einer variabele speicherplatz. Deshalb gibt Pollswitch nur werte zwischen 0 bis 63 (inkl.) zuruck. Aber fur den werten 32 bis und inklusief 63, gibt es eine menge von 32 kombinationen mit nur eins (den ganz linker) oder jeder taster.
Also, wenn Asuro irgendwie die meist links-ausen taster eingedruckt kriecht, aber auch einer oder mehr von den andere Taster wird diesen If-stellung war sein. Du wunscht aber nur den ganz links-aussen taster. Dazu muss es "=32" sein. Weil 32 ist gleich "100000" in binaire zahlung. ">31 ist gleich wie '001xxxxx' in binair zahlung. Wo 'x' heist 'kan 1 oder 0 sein', oder 'machts nicht was es ist'.
Ich hoffe das obene macht sinn fur dich, weil es ganz wichtig ist wenn mann sich mit mircocontroller oder programieren beschaftigen möchtest. Leider habe ich viele schwierigkeiten das deutlich zu erklären auf Deutsch.
Lesezeichen