hi radbruch,

Zitat von
radbruch
return ((10240000L/(long)i-10000L)*63L+5000L)/10000;
Mit der letzten Zeile werden die Tasterwerte "kallibriert". Bei mir gilt die letzte Zeile, mit der vorletzten hatten meine Taster die Werte 1,2,4,7,15,31. Richtig ist 1,2,4,8,16,32. Die Werte müssen zusammen 63 ergeben sonst funzt es nicht!
wie kann ich die werte, die von den tastern geliefert werden ausgeben? Auch mit "SerWrite"?
Ich habe ein kleines progrämmchen zusammengestrickt, könnte ich es - nach entsprechender erweiterung - auch dazu benutzen?
Code:
#include "asuro.h"
unsigned char sw;
unsigned char sw0;
unsigned char sw1;
unsigned char sw2;
int main(void) // start hauptprogramm
{
SerWrite("\n\r tastenabfrage_2007_02_17 ",28); // wer bin ich
Init (); // was wir da initialisiert?
while (1) // tastenabfrage
{
sw0=PollSwitch(); // Schalter einlesen und für eine Runde speichern
sw1=PollSwitch();
sw2=PollSwitch();
if ((sw0==sw1) && (sw0==sw2)) sw=sw0; else sw=0;
if (sw0==16) {StatusLED (YELLOW);
SerWrite("\n\r taste K2 ",12);}
else if (sw0>0) {StatusLED (RED);
SerWrite("\n\r taste gedrueckt ",19);
}
else {StatusLED (GREEN);}
}
while (1); // endlosschleife
return 0; // wird nicht mehr ausgeführt
} // ende hauptprogramm
- das "entprellen" der taster funktioniert aber nicht so ganz. Beim längerem drücken ist es ok, beim antippen nicht.
fehlt da bei mir noch was?
- auch scheinen mir da zuviele geschweifte klammern zu sein, oder täusche ich mich da?
danke
Lesezeichen