IOW kaputt oder Fehler in SimpleHDWrite?
Moderator: Guido Körber
IOW kaputt oder Fehler in SimpleHDWrite?
Hallo Zusammen,
ich nutze einen IOW40 um einen Schrittmotor zu steuern, was eigentlich auch ganz normal zu funktionieren scheint. Wenn ich jedoch die Sample Software SimeplHDWrite.exe verwende so kommt es manchmal vor, dass die Software plötzlich Reports ausliest und dies im Sekundentakt wiederholt. Dabei ist der Report immer der gleiche. Wie ist das möglich sofern sich ja gar nichts geändert hat? Ist das ein Fehler der SimpleHDWrite.exe oder flimmert da irgendwas auf meinem Board? Wenn man danach den USB Stecker rauszieht und wieder einsteckt so ist alles wieder in Ordnung...
ich nutze einen IOW40 um einen Schrittmotor zu steuern, was eigentlich auch ganz normal zu funktionieren scheint. Wenn ich jedoch die Sample Software SimeplHDWrite.exe verwende so kommt es manchmal vor, dass die Software plötzlich Reports ausliest und dies im Sekundentakt wiederholt. Dabei ist der Report immer der gleiche. Wie ist das möglich sofern sich ja gar nichts geändert hat? Ist das ein Fehler der SimpleHDWrite.exe oder flimmert da irgendwas auf meinem Board? Wenn man danach den USB Stecker rauszieht und wieder einsteckt so ist alles wieder in Ordnung...
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Das hört sich nach sehr kurzen Impulsen an, wenn ein Flankenwechsel so schnell auf den letzten folgt, dass die Daten noch nicht abgesendet waren, dann kann genau das passieren.
Re: IOW kaputt oder Fehler in SimpleHDWrite?
was könnte ein derartiges Flimmern verursachen?
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Ein Störsignal?
-
- Posts: 389
- Joined: Sun Feb 13, 2005 1:22 pm
- Location: Gerblingerode / Duderstadt
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
@ finalcu
Verwendest Du ein Test-Board oder ist die Schaltung eine eigen Konstruktion, ein Schaltplan wäre auch nicht schlecht.ich nutze einen IOW40 um einen Schrittmotor zu steuern
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Ich verwende das IOW40 Starterkit und hab ne fertige Schrittmotorensteuerungskarte draufgelötet. Soeben ist mir aufgefallen, dass der Fehler in meiner Software liegen könnte. Wenn ich einen Pin ändern will, dann mache ich das indem ich den aktuellen Report nehme und dort den Pin ändere und dann den aktualisierten Report mittels IowKitWrite() schreibe. Dabei ändere ich den Pin aber nur im DWORD Report.Value. Muss in Report.Bytes[] das gleiche stehen oder spielt das keine Rolle?
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Ganz schlechte Idee das was man vom IO-Warrior bekommen hat als Ausgabewert wieder zurück zu schreiben. Damit setzt man dann Pins die vorher eigentlich Eingänge waren aber extern auf 0 gezogen wurden als gegen Masse treibende Ausgänge.
Re: IOW kaputt oder Fehler in SimpleHDWrite?
das berücksichtige ich natürlich indem ich anfangs definiere welche Pins als Eingänge und welche als Ausgänge gebraucht werden. Report.Value wird am Ende noch mit einer Maske verodert wobei eine 1 in der Maske steht, wenn der jeweilige Pin ein Eingang ist. Das scheint eigentlich auch zu funktionieren, ich vertseh nur nicht ganz was der Unterschied zwischen Report.Value und Report.Bytes[] ist und welches der beiden für den Schreibprozess relevant ist.
- Christoph Jung
- Posts: 673
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
report.Value beschreibt alle Ports auf einmal und ist nur für die SimpleIO-Funktion.
report.Bytes[] für die einzelnen Ports oder die Specialmode-Funktionen zuständig.
report.Bytes[] für die einzelnen Ports oder die Specialmode-Funktionen zuständig.
Software developer
Re: IOW kaputt oder Fehler in SimpleHDWrite?
wenn ich aber einen neuen Report anlege, woher weiss die write() Funktion nun ob es die Daten aus Report.Value oder Report.Bytes nehmen soll sofern es sich um eine einfache Schreibaktion (Pipe 0) handelt.
-
- Site Admin
- Posts: 2879
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Indem man die Datenstruktur nimmt die auch zur jeweiligen Pipe passt?
Die SimpleIO Struktur hat beim IOW40 4 Bytes plus ReportID (die in diesem Fall nicht benutzt wird) und die SpecialMode Struktur hat 7 Bytes plus ReportID.
Die SimpleIO Struktur hat beim IOW40 4 Bytes plus ReportID (die in diesem Fall nicht benutzt wird) und die SpecialMode Struktur hat 7 Bytes plus ReportID.
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Die SimpleIO Struktur hat also 4 Bytes und eine ReportID = 0 (nur fuer Windows zwingend). Schaut man sich nun den IOW40Report struct an so sieht man ReportID, Value, und Bytes[4]. Bisher habe ich stets die Variable Value fuer eine einfache Schreibaktion genommen aber so wie ich das verstanden habe, koennte man die zu schreibenden Daten auch in Bytes[] schreiben. Die Frage ist nun was passiert wenn ich einen Report schreibe, der in Value was anderes als in Bytes[] stehen hat. Woher weiss IowKitWrite() ob es die Daten aus Value oder Bytes[] schreiben soll?
Oder verstehe ich das was komplett falsch?
Oder verstehe ich das was komplett falsch?
- Christoph Jung
- Posts: 673
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
Re: IOW kaputt oder Fehler in SimpleHDWrite?
Dfür gibt es die Strucktur "IOWKIT_SPECIAL_REPORT" die das handhabt. Den Rest macht die DLL. Zur not mal in die Doku zur DLL schauen, da ist das ein wenig beschrieben.
Software developer