Erst eine Frage: ist es OK dass wenn die Taste gedrueckt ist, der uC NUR auf Loslassen der Taste wartet (d.h. er kuemmert sich nicht ums Sensoren einlesen, Daten ausgeben etc....)?
Wenn ja, kannst du etwa wie folgt machen (Syntax in deinem Compiler ist wahrscheinlich anders):
Code:
bool Taste1sGedrueckt()
{
// Ich nehme an: "0" = Taste gedrueckt
uint ms=0; // 16-bits uint
while (Taste==0) // Taste gedrueckt?
{
delay_ms(1);
ms++;
}
// Hierher kommen wir wenn die Taste losgelassen wird (oder nicht gedrueckt ist)
// Nun checken wir die verlaufene Zeit
if ((ms>=800) && (ms<=1200)) // 1s +/- 20%
return true;
else
return false;
}
Lesezeichen