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

Antworten
ebug38
Beiträge: 5
Registriert: Do Jun 27, 2019 2:19 pm

Merkwürdiges Verhalten bei mehr als 2 Inputs auf 1

Beitrag von ebug38 » Mi Aug 28, 2019 2:02 pm

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: Alles auswählen

    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
Beiträge: 2725
Registriert: Di Nov 25, 2003 10:25 pm
Wohnort: Germany/Berlin
Kontaktdaten:

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

Beitrag von Guido Körber » Mi Aug 28, 2019 2:58 pm

Haben Sie dabei berücksichtigt, dass Schaltkontakte prellen?

Benutzeravatar
Christoph Jung
Beiträge: 610
Registriert: So Okt 08, 2006 3:43 pm
Wohnort: Germany / Berlin
Kontaktdaten:

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

Beitrag von Christoph Jung » Do Aug 29, 2019 7:31 am

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

Antworten