Merkwürdiges Verhalten bei mehr als 2 Inputs auf 1

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
ebug38
Posts: 5
Joined: Thu Jun 27, 2019 2:19 pm

Merkwürdiges Verhalten bei mehr als 2 Inputs auf 1

Post by ebug38 »

Hallo,

ich habe ein Problem mit dem IOW56. Ich nutze Python als Programmiersprache.

Ich habe testweise eine endlosschleife um die Pins auszulesen geschrieben.

Ich habe auf P 0.0 einen Taster, auf P 0.2 und P 0.3 jeweils einen Schalter.
Wenn auf P0.2 und P0.3 5V anliegen (Schalter schalten) und auf 0.0 nicht (Taster nicht betätigt), dann habe ich die Ausgabe von 12. (soweit richtig)
Wenn Schalter auf P0.2 geschaltet und Taster betätigt und P0.3 inaktiv, dann habe ich 5. (auch korrekt)

Wenn Schalter auf P0.2 und P0.3 geschaltet ist (dann ist die Ausgabe erstmal 12), beim Betätigen des Tasters passiert absolut nichts mehr, keine Zustandsänderungen sind erkennbar und dauerhafte Ausgabe von 12. Plus der ReadTimeout von einer Sekunde wird auch ignoriert und der Ablauf läuft um ein vielfaches schneller.

Mein Code sieht so aus.

Code: Select all

    while(True):
        read = iowkit.IowKitRead(ioHandle, IOW_PIPE_IO_PINS, ctypes.byref(report), IOWKIT56_IO_REPORT_SIZE)
        print("read " + str(read))
        print(report[1])
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: Merkwürdiges Verhalten bei mehr als 2 Inputs auf 1

Post by Guido Körber »

Haben Sie dabei berücksichtigt, dass Schaltkontakte prellen?
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: Merkwürdiges Verhalten bei mehr als 2 Inputs auf 1

Post by Christoph Jung »

Für das Auslesen der IO-Ports in einer Schleife nutze ich immer den Special-Mode GetPinStatus. Der liefert einem immer den aktuellen Status der IO-Pins aus, ohne im Timeout hängen zu bleiben. Vielleicht hift das ja.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply