IO-Warrior buffert

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
Franz Peter Zantis
Posts: 97
Joined: Wed Aug 03, 2011 3:46 pm
Contact:

IO-Warrior buffert

Post by Franz Peter Zantis »

Hier noch etwas, was ich immer wieder bei der Arbeit mit IOWarrior56 beobachtet habe: er buffert.
Der aktuelle Stand der IOs wird nicht beim ersten Read-Befehl wiedergegeben. Man muss öfter lesen. Anbei dazu ein Code-Beispiel. Port 4.0 wird auf GND gezogen. Anschließend wird zyklisch abgefragt welchen Stand die Bits des Port4 haben. Man erkennt unten in der Debug.Print-Ausgabe, dass zweimal der alte Stand eingelesen wird, bei dem P4.0 noch auf 1 stand. Erst beim dritten Einlesen erkennt der IO-Warrior, dass P4.0 mittlerweile auf GND liegt.
Attachments
IOWarrior_Buffert.gif
IOWarrior_Buffert.gif (478.85 KiB) Viewed 4401 times
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: IO-Warrior buffert

Post by Christoph Jung »

Die Funktion IowKitReadNonBlocking() hat eine Buffer von 128 Report Bytes. Steht auch in der Beschreibung der DLL.
Es soll ja anscheinend nur ein IO-Pin gelesen werden (?), da würde ich dann eine Write() / Read() kombination mit dem Special-Mode 0xFF versuchen.
Aber nicht vergessen den Timeout zu setzten.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply