setzen der ausgänge funktioniert nicht

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
toga
Posts: 20
Joined: Thu Dec 30, 2004 7:33 pm

setzen der ausgänge funktioniert nicht

Post by toga »

Hallo,

ich versuche gerade mal wieder mich durch die Funktionen des iOW zu kämpfen. Leider lassen meine programierkenntnisse da keine grossen Sprünge zu.

Ich benutze den IOW 40 für eine Tastaturmatrixabfrage, die tadellos funktioniert.

Zusätzlich will ich einen der noch freien Pins für das setzen eines Status nutzen. Mein Quellcode sieht auszugsweise folgendermassen aus:

char bright[1] = {0x00000000};
bytes = IowKitWrite(IowKitGetDeviceHandle(1), 0, bright, 1 );
sleep(4000);
char bright1[1] = {0xFFFFFFFF};
bytes = IowKitWrite(IowKitGetDeviceHandle(1), 0, bright1, 1 );

Leider passiert beim anschliessen an die Versuchsplatine nichts mit den LEDs, noch mit dem Pin an den ich einen Transistor angeschlossen habe

Wenn mir jemand einen Tip geben könnte wäre ich sehr dankbar
MFG
TOGA
toga
Posts: 20
Joined: Thu Dec 30, 2004 7:33 pm

Post by toga »

Hallo,

ich probiere immernoch mein Glück, die Ports einzeln beschreiben zu können.

Wenn ich meinen Rückgabewert bytes auslese, dann zeigt er mir dort eine 0 an. Das heisst ja wohl, dass keine Daten zum IO40 gehen.

Wenn ich mit dem Befehl dlasterr = GetLastError(); den Errorcode aufrufe, gibt er mir eine 87 zurück.

Ich habe keine Quelle in der SDK gefunden, in der die Fehler beschrieben werden.

Wenn jemand einen Tip hat wär das toll.
Danke
Toga
Guido Körber
Site Admin
Posts: 2876
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Das kann so nicht gehen. Erst mal wird da ein Long auf einen Char zugewiesen und dann wird als Reportlänge 1 angegeben.

Der Zugriff auf nur einen Port ist nicht möglich, es werden immer alle Ports auf einmal geschrieben. Windows hängt dann immer noch ein Byte für eine ReportID vorne an, auch wenn keine benutzt wird. Beim IOW40 kommt man also auf eine Reportlänge von 5.

Entsprechend gross muss auch der Buffer für die Daten ausgelegt werden.
Post Reply