Drehgeberauswertung mit xmega128a1 Pin4

OP #2239445
Lesenswert?

Guten Morgen,
ich habe ein Problem mit der Auswertung eines Inkrementalgebers. Als µC 
verwende ich den xmega128a1 und in meiner Schaltung sind die Anschlüsse 
des Inkrementalgebers A, B, an PORTD Pin2 und 6 angeschlossen.
Folgendes Problem:
Der Inkrementalgeber kann auch als Taster funktionieren, wenn man auf 
ihn draufdrückt. Das Signal (active low) ist an Pin4 angeschlossen 
(Pull-Up Widerstand ist vorhanden). Nun kann ich direkt am Pin4, PortD 
des µC dauerhaft 3,3V messen und wenn ich den Taster drücke 0V. So wie 
es sein soll. In meinem kleinen Programm:
#include <avr/io.h>

int main(void)
{
  PORTF.DIR |= (1 << PIN4);
  PORTF.OUT |= (1 << PIN4);

    while(1)
    {
    if (!(PORTD.IN & 0x4)) {
      PORTF.OUTTGL |= (1 << PIN4);
    }
    }
}
sollte díe LED an PORTF, Pin4 getoggelt werden sobald der Taster 
gedrückt wird. Wenn der Taster gedrückt wird passiert aber nichts. Es 
passiert jedoch was wenn der Inkrementalgeber gedreht wird 
(angeschlossen an Pin2 u. 6). Da ich aber direkt am µC das korrekte 
Signal vom Taster messen kann, muss intern noch etwas mit dem Signal 
passieren. Habt ihr eine Ahnung, was da standardmäßig eingestellt sein 
kann?

Grüße

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren