Hallo,
Ich habe eine Paltine mit dem IOW24 aufgebaut. Dort soll er per IIC einen DS2482 ansprechen. Leider funktioniert das nicht wirklich. Schreiben lässt sich wohl auf den IOW24, aber es lässt sich nichts lesen. Weder Reports aus der Pipe 1, noch Reports aus der Pipe 0. Ich kann also auch nicht den Status der Pins lesen. Initialisieren lässt sich der IOW24 anscheinend ohne Probleme.
Ist mein IOW24 kaputt
Moderator: Guido Körber
-
- Site Admin
- Posts: 2856
- Joined: Tue Nov 25, 2003 10:25 pm
- Location: Germany/Berlin
- Contact:
-
- Posts: 14
- Joined: Mon Dec 26, 2005 7:55 pm
Im Prinzip geht ja auch gar nichts mehr. Ich erhalte beim Schreiben ja lediglich die Bestätigung, dass 8 Bytes geschrieben wurden.
Hier mal der Testcode den ich geschrieben habe. Vielleicht übersehe ich auch nur was dummes.
Edit:
Ein Lesen mit den General HID Tools, die beim SDK dabei sind funktioniert auch nicht. Wenn ich GetLastError() aufrufe erhalte ich den Fehlercode 1460. Gibt es eigentlich eine Übersicht über die Fehlercodes?
Eigentlich müsster er mir doch dann die Bytes mit dem Pin-Status zeigen und den IIC-Mode starten. Allerdings bleibt auf dem Schirm die Meldung "Lese Pin-Status ein" sehr lange stehen.
Hier mal der Testcode den ich geschrieben habe. Vielleicht übersehe ich auch nur was dummes.
Edit:
Ein Lesen mit den General HID Tools, die beim SDK dabei sind funktioniert auch nicht. Wenn ich GetLastError() aufrufe erhalte ich den Fehlercode 1460. Gibt es eigentlich eine Übersicht über die Fehlercodes?
Code: Select all
int main()
{
char report[8];
for(int i=0;i<=7;i++){
report[i]=0;
}
ULONG res;
report[0]=1;
report[1]=1;
iow=IowKitOpenDevice();
if(IowKitGetProductId(iow)==IOWKIT_PRODUCT_ID_IOW24){
cout << "IOW24 ist angeschlossen" << endl;
cout << "Lese Pin-Status ein" << endl;
IowKitRead(iow,0,report,8);
cout << report[0] << " | " << report[1] << " | " << report[2] << endl;
report[0]=1;
report[1]=1;
res=IowKitWrite(iow,1,report,8);
cout << "Starte IIC-Bus" << endl;
if(res==8){
cout << "IIC-Bus gestartet" << endl;
}
else{
cout << "Fehler beim Starten des IIC-Bus" << endl;
return 0;
}
}
else{
cout << "Kein gueltiges Geraet angeschlossen" << endl;
return 0;
}
}
- Christoph Jung
- Posts: 670
- Joined: Sun Oct 08, 2006 3:43 pm
- Location: Germany / Berlin
- Contact:
wo ist denn das "memset" ?
wie initialisierst du die ganzen daten? ich lese nur
wenn du mit der DLL arbeitest, dann musst du auch die entsprechenden Variablen nutzen (.Bytes[], .ReportID, .Value) Oder lädst du die in einer anderen Funktion / Klasse?
wie initialisierst du die ganzen daten? ich lese nur
Code: Select all
char report[8];