Ich hab mal schnell eine Funktion implementiert, die einen Taster abfragt..
Code:
char gettaster0 (void)
{
if(bit_is_clear(tasterstatus, 0) && bit_is_set(TASTERPORT, TASTER0))
{
tasterstatus |= (1 << 0);
debounce0--;
}
if(bit_is_set(tasterstatus, 0) && bit_is_set(TASTERPORT, TASTER0))
debounce0--;
if(bit_is_set(tasterstatus, 1) && bit_is_clear(TASTERPORT, TASTER0))
{
tasterstatus &= ~(1 << 0);
debounce0 = DEBOUNCEWERT;
}
if(debounce0 == 0)
return 1;
return -1;
}
TASTERPORT und TASTER0 sind in der Header Datei. DEBAUNCEWERT ist die Variable, wie oft er das ganze prüft, um dem Prellen entgegen zu gehen.
tasterstatus ist die Statusvariable für alle TAster. Bit0 ist das Statusbit für den Taster 0. Wenn das gesetzt ist, dann war der Taster bei der vorigen Prüfung gedrückt.
Kann ich das so machen?
Gruß Robert
Lesezeichen