Hallo
Ich habe jetzt noch ein Problem.
Wie oben schon gesagt, einer meiner Taster funktioniert nicht ganz korrekt, was mir schon beim anfänglichen Selbsttest aufgefallen ist.
Laut Anleitung:
Die Taster (K1-K6) werden ausgewertet. Diese Funktion liefert ein Byte. In diesem Byte ist die
Information enthalten, welche Taster gedrückt wurden. Dabei setzt Taster 1 das 5. Bit,
Taster 6 das 0.
Bit.
Bit0 ( 1 ) -> K6
Bit1 ( 2 ) -> K5
Bit2 ( 4 ) -> K4
Bit3 ( 8 ) -> K3
Bit4 ( 16 ) -> K2
Bit5 ( 32 ) -> K1
Mein Taster K2 liefert aber irgendeinen anderen Wert. Nur welchen?
Ich bin leider nicht der erfahrenste C-Programmierer.
Ich aber habe schon einiges ausprobiert.
Etwa:
Code:
#include "asuro.h"
int main(void)
{
Init();
unsigned char taste;
while(1)
{
taste = PollSwitch();
if ( PollSwitch() == 32 )
{
SerWrite("K1",2);
SerWrite (taste,2);
}
else if ( PollSwitch() == 16 )
{
SerWrite ("K2",2);
SerWrite (taste,2);
}
else if ...............(und so weiter)............
}
return 0;
}
Es soll also die Bezeichnung des Tasters (K1, K2,...) und sein Wert (32, 16,.....) ausgegeben werden.
Drücke ich K1 wird auch K1 auf dem Hyperterminal ausgegeben, allerdings gefolgt von wirren Zeichen, anstatt dem gewünschten Wert.
Drücke ich K2 passiert gar nix......wie gesagt, K2 gibt irgendeinen "falschen" Wert aus. Aber welchen ?????
Wie komme ich an diesen Wert ?
Lesezeichen