Hallo!
Ich möchte die Position eines Joysticks mit dem IOW abfragen.
Dazu wird die Position des Joystick-Potis mittels eines µC in eine 8-bit-Zahl pro Achse gewandelt.
Diese liegt dann am IOW an.
Wenn ich nun über IowKitReadNonBlocking die Daten bei Timer-Ticks auslese, krieg ich nicht die aktuelle Position.
Wenn man den Timer etwas länger stellt, kann man eindeutig sehen, dass der IOW scheinbar hochzählt, obwohl der Poti (und auch das dig. Signal an den Ports des IOW) schon längst anliegt!
Wenn man den Timer auf kürzere Zeiten stellt (z.B. 1 ms) stellt, geht es wesentlich besser!
Allerdings hab ich eine etwas komplexere Verarbeitung der Daten bei jedem Tick, weswegen wieder das Hoch- bzw. Runterlaufen der IOW-Daten auftritt! Ich brauch aber immer die aktuellen Daten!
Wer kennt das Problem und kann helfen?!
Danke!
Jörg
Joystick-Abfrage mit IowKitReadNonBlocking
Moderator: Guido Körber
Hallo joerg,
die IowKit-Lib puffert immer bis zu 128 Reports vom IOWarrior. Wenn dich nur der aktuelle Wert interessiert ist das also der Wert der gelesen wurde bevor IowKitReadNonBlocking zum ersten mal false (=keine neuen daten) liefert.
Eberhard
die IowKit-Lib puffert immer bis zu 128 Reports vom IOWarrior. Wenn dich nur der aktuelle Wert interessiert ist das also der Wert der gelesen wurde bevor IowKitReadNonBlocking zum ersten mal false (=keine neuen daten) liefert.
Code: Select all
//nur pseudo code!
letzterWertPuffer [8];
neuerWertPuffer[8]
while(IowKitReadNonBlocking(neuerWertPuffer)==true) {
letzerWertPuffer=neuerWertPuffer;
}
return letzterWertPuffer;
warum so umständlich?
Guck mal auf http://www.codemercs.com/ nach JoyWarrior
Guck mal auf http://www.codemercs.com/ nach JoyWarrior