Hallo Wie Bereits in einigen anderen Treads erwähnt, experimentiere ich mit dem k8055 und x-plane (Flugsimulator). Dies funktioniert auch schon ganz gut. Nun habe ich das problem das ich in C++ die Digitalen Ports nicht richtig einzeln ansteuern kann. Ich habe gelesen, dass der Wert in UINT8 angegeben wird. allerdings werde ich aus diesem Wert nicht schlau. MIt ReadDigitalChannel(1) kann ich immer den ersten Kanal abfragen, das funktioniert. MIt ReadDigitalChannel(2) kann ich den 2 Kanal aber nicht ansprechen. Ich habs binär Probiert DigitalChannel(01000000) und Hex DigitalChannel(40) leider auch vergeblich. Kann mit jemand sagen, wie ich die Ports einzeln ansteuern kann? mfg sascha
Was meinst du genau mit Ansteuern? Ausgabe kannst du mit den Funktionen SetDigitalChannel(Kanal: 1-8) und WriteAllChannel(Wert: 0-255) machen Eingabe kannst du mit den Funktionen ReadDigitalChannel(Kanal: 1-5) und ReadAllChannel machen Bei den ...All.. Funktionen bekommst du bzw. setzt du einen Wert, der als bitweise Verorderung der einzelnen Kanäle aufgebaut ist. Kanal 1 und 5 aktiv wären 00010001 = 0x11 hex. = 17 dez. Bei den anderen beiden Funktionen bekommst du boolsche Werte, d.h. 1=wahr 0=falsch
Ich habs raus. Zumindest mit ReadAllDigital(). Es handelt sich um einen 5 Stelligen Binärwert, dr haber vorher noch in hex umgerechnet werden muss. bin: 00001 hex:1 kanal:1 bin: 00010 hex:2 kanal:2 bin: 00100 hex:4 kanal:3 bin: 01000 hex:8 kanal:4 bin: 10000 hex:10 kanal:5 womit ich in c++ mit if(ReadAllDigital() == 4) kanal 3 auslese. wie ich mit ReadDigitalChanel() gezielt einzelne Kanäle auslese weiss ich allerdings immer noch nicht. ist auch nicht mer wichtig, funktioniert ja auch mit ReadAllDigital(), hätte aber für das Verstädnis der Karte geholfen. mfg sascha
Wenn du ReadAllDigital() funktionsfähig hast, kannst du ReadDigitalChanel() davon ableiten, wenn es in deiner K8055-API nicht funktioniert. Du pickst den gefragten Kanal aus dem Gesamtwert aus.
1 | BOOL ReadDigitalChanel(longint channel) |
2 | {
|
3 | assert(channel >= 1 && channel <= 5); |
4 | return (ReadAllDigital() & (1 << (channel-1))) != 0 ? TRUE : FALSE ; |
5 | }
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.