Hallo,
ich versuche einen Taster (Mikroschalter) mittels Switchport ein zu lesen.
Versuchsweise habe ich Dieses Konstrukt im Code eingefügt:
if inp_raise2(2) then
toggle(led);
endif;
Die Einstellungen für den Switch Port sind folgende:
SwitchPort2 = PinD, $FF;
PolarityP2 = $00; // polarity
Der Schalter schaltet gegen Masse und der Pull Up des Pins ist ein geschaltet.
Leider scheint hier einiges schief zu laufen, was ich nicht verstehe.
Die LED sollte nach meinem Verständnis ja ihren Zustand bei jedem Tastendruck ändern.
Dies tut sie allerdings nicht.
Sie geht beim Druck auf den Taster kurz an und geht dann unabhängig davon ob der Taster noch gedrückt ist oder nicht, nach nicht einmal einer Sekunde aus.
Ausserdem ist es nie sicher ob die LED überhaupt an geht.
Ich habe bereits versucht mittels debounce die Auswertezeit für das Entprellen hoch zu setzten, was jedoch nicht funktioniert hat.
Ausserdem habe ich den internen Pull Up ausgeschaltet und einen externen Widerstand von 1KOhm gegen Plus geschaltet.
Alles was ich bisher versucht habe war erfolglos. Wo liegt hier mein Denkfehler?
Florian
ich versuche einen Taster (Mikroschalter) mittels Switchport ein zu lesen.
Versuchsweise habe ich Dieses Konstrukt im Code eingefügt:
if inp_raise2(2) then
toggle(led);
endif;
Die Einstellungen für den Switch Port sind folgende:
SwitchPort2 = PinD, $FF;
PolarityP2 = $00; // polarity
Der Schalter schaltet gegen Masse und der Pull Up des Pins ist ein geschaltet.
Leider scheint hier einiges schief zu laufen, was ich nicht verstehe.
Die LED sollte nach meinem Verständnis ja ihren Zustand bei jedem Tastendruck ändern.
Dies tut sie allerdings nicht.
Sie geht beim Druck auf den Taster kurz an und geht dann unabhängig davon ob der Taster noch gedrückt ist oder nicht, nach nicht einmal einer Sekunde aus.
Ausserdem ist es nie sicher ob die LED überhaupt an geht.
Ich habe bereits versucht mittels debounce die Auswertezeit für das Entprellen hoch zu setzten, was jedoch nicht funktioniert hat.
Ausserdem habe ich den internen Pull Up ausgeschaltet und einen externen Widerstand von 1KOhm gegen Plus geschaltet.
Alles was ich bisher versucht habe war erfolglos. Wo liegt hier mein Denkfehler?
Florian