Hallo,
ich verstehe nicht ganz, warum ihr die Tastenauswertung so kompliziert mit arrays macht.
Geht es nicht viel einfacher mit einem character als Tastenwert und bitweise vergleichen?
Code:
...
unsigned char t1, t2;
...
t1=PollSwitch();
t2=PollSwitch();
if (t1 && t1 == t2)
{
if (t1 & 0x01) do_K6();
if (t1 & 0x02) do_K5();
if (t1 & 0x04) do_K4();
...
}
...
2x o. 3x aufrufen von PollSwitch() und vergleichen der Rückgabewerte korrigiert Schwankungen der A/D Werte durch Lade/Entladevorgänge von C7.
Vorraussetzung ist natürlich, das die PollSwitch() Funktion auch tatsächlich
die richtigen Werte liefert (2er Potenzen). Deshalb erst mal mit einem Testprogramm die Werte sich ausgeben lassen.
Code:
...
char str[8];
unsigned char t1,t2;
...
t1=PollSwitch();
t2=PollSwitch();
if (t1 && t1 == t2)
{
sprintf(str, "%3d\r\n", t1);
SerWrite(str, 5);
}
Falls K1 o. K2 nicht ganz korrekte Werte liefern kann, man dies in der PollSwitch() Funktion anpassen.
Guckt ihr hier:
https://www.roboternetz.de/phpBB2/ze...ag.php?t=12475
https://www.roboternetz.de/phpBB2/ze...ag.php?p=82999
Gruß Peter
Lesezeichen