Hallo ElTransistor,
ich habe mir mal deinen geposteten Code angesehen.
Du hast dort ein
---> if (t1 & 0x07) /* Tasten links gedrückt? */
---> if (t1 & 0x3/* Tasten rechts gedrückt? */
eingebaut.
Das Problem bei den Tasten ist, dass die Funktion PollSwitch(), bei einem nicht korrekt eingestelltem Wert für die Umrechnung des Tasten-ADC-Wert's in den zurückgegeben Tasten-Gedrückt-Wert, z.B. folgendes passieren kann:
Gedrückt wird: 100000
Berechnet wird: 011111
Nun kommt es auf die Reihenfolge in deinem Hauptprogramm an ob du zuerst 0x07 oder 0x38 prüfst.
Du prüfst ja erst 0x07, und somit könnte diese Seite 'bevorzugt' werden. (Oder andersherrum)
Du solltest auf alle Fälle mal den Wert von t1 an die Terminalemulation senden, wenn du in den beiden IF-Codestellen bist und prüfen, ob das auch wirklich der Wert ist den du an den Tastern gedrückt hast.
Gruß Sternthaler
Lesezeichen