Entprellen mit SwitchPort funktioniert nicht

Florian
 
Avatar
 
Subject:

Entprellen mit SwitchPort funktioniert nicht

 · 
Posted: 23.02.2014 - 23:42  ·  #1
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
Harry
Moderator
Avatar
Gender:
Location: zwischen Augsburg und Ulm
Age: 59
Posts: 2134
Registered: 03 / 2003
Subject:

Re: Entprellen mit SwitchPort funktioniert nicht

 · 
Posted: 24.02.2014 - 15:33  ·  #2
Auf den ersten Blick würde ich das Löschen des Tasters in der If-Abfrage vermissen. Auswendig ??? Switchport_2_Clear oder so ähnlich (ohne ein Handbuch vorliegen zu haben ;) )

Gruss
Harry
Florian
 
Avatar
 
Subject:

Re: Entprellen mit SwitchPort funktioniert nicht

 · 
Posted: 25.02.2014 - 00:08  ·  #3
Hallo noch mal,

Asche auf mein Haupt.
Ich habe den SysLED Treiber importiert und fälschlicherweise auf den selben Port gelegt auf dem auch die einzelne LED angeschlossen war.

So konnte es natürlich nicht funktionieren.

Nachdem ich den SysLED Treiber auf den richtigen Port gelegt habe, funktionierte die LED einwandfrei.

Man sollte solche Sachen eben nicht um kurz vor Mitternacht angehen. Dabei kommen solche Fehler bei heraus.

Florian
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 15 · Cache Hits: 13   64   77 · Page-Gen-Time: 0.041206s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI