Der Port2 des IO-Warrior56 wird in einer Applikation zur Schalterabfrage benutzt. Wenn nun ein Port mit Hilfe eines Schalters nach Masse gezogen wird, dann habe ich erwartet, dass das zugehörige Bit bei jeder Abfrage mit iowKitReadNonBlocking als 0 erscheint. Leider ist das nicht der Fall. Bei der ersten Abfrage erhalte ich erwartungsgemäß für das betreffende Bit eine 0 bei der zweiten Abfrage aber 1 - obwohl der Schalter weiterhin den Pin nach Masse kurzschließt. Bei der dritten Abfrage ist der Wert wieder erwartungsgemäß 0 usw. Die Ausgabe "toggelt". Der zugehörige Code steht weiter unten. Was ist falsch?
Public Class Form1
Dim IOhandle As Integer
Dim ioarray(7) As Byte
Dim ret As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
IOhandle = IowKitOpenDevice()
ioarray(0) = 0
ioarray(3) = 255
ret = IowKitWrite(IOhandle, 0, ioarray(0), 8)
End Sub
Private Sub BtnPort2einlesen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnPort2einlesen.Click
Dim lstring As String
ret = IowKitReadNonBlocking(IOhandle, 0, ioarray(0), 8)
lstring = Convert.ToString(ioarray(3), 2)
Me.TxtBxPort2.Text = lstring & " " & CStr(ioarray(3))
End Sub
Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
IowKitCloseDevice(IOhandle)
End Sub
End Class
Schalterabfrage: Toggeln?
Moderator: Guido Körber
-
- Posts: 97
- Joined: Wed Aug 03, 2011 3:46 pm
- Contact:
Re: Schalterabfrage: Toggeln?
ersuchen Sie es mal wie unter #Pin auswerten VB.net(Anfänger)# vom 08.05.2014 weiter unten.
Mit dem Spezialmodus sollte es klappen.
Beim IOW56 sind 64 Daten zu übertragen.
Gruß thöne
Mit dem Spezialmodus sollte es klappen.
Beim IOW56 sind 64 Daten zu übertragen.
Gruß thöne
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: Schalterabfrage: Toggeln?
Ist der Wert nach ein paar Datenpaketen stabil auf 0?
Das wäre dann das Verhalten was ich erwarten würde, da ein Schalter prellt und damit ein paar Pegelwechsel beim Schließen des Kontaktes auftreten können. Je nach Schalterart kann das bei bis zu 4-5 ms liegen.
Das wäre dann das Verhalten was ich erwarten würde, da ein Schalter prellt und damit ein paar Pegelwechsel beim Schließen des Kontaktes auftreten können. Je nach Schalterart kann das bei bis zu 4-5 ms liegen.