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?
2x o. 3x aufrufen von PollSwitch() und vergleichen der Rückgabewerte korrigiert Schwankungen der A/D Werte durch Lade/Entladevorgänge von C7.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(); ... } ...
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.
Falls K1 o. K2 nicht ganz korrekte Werte liefern kann, man dies in der PollSwitch() Funktion anpassen.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); }
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






Zitieren

Lesezeichen