Joystick-Abfrage mit IowKitReadNonBlocking

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
joerg
Posts: 8
Joined: Sat Dec 02, 2006 12:15 pm

Joystick-Abfrage mit IowKitReadNonBlocking

Post by joerg »

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
wayoda
Posts: 362
Joined: Fri Dec 19, 2003 12:00 pm
Location: Wuppertal/Germany

Post by wayoda »

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.

Code: Select all

//nur pseudo code!
letzterWertPuffer [8];
neuerWertPuffer[8]
while(IowKitReadNonBlocking(neuerWertPuffer)==true) {
  letzerWertPuffer=neuerWertPuffer;
}
return letzterWertPuffer;

Eberhard
Mike D
Posts: 91
Joined: Wed Jun 02, 2004 4:07 pm
Location: Elbe- Weser-Dreieck
Contact:

Post by Mike D »

warum so umständlich?
Guck mal auf http://www.codemercs.com/ nach JoyWarrior
joerg
Posts: 8
Joined: Sat Dec 02, 2006 12:15 pm

Post by joerg »

Hallo!

Vielen Dank!
Dank dem Tip von dir, Eberhard, läufts inzwischen echt super!

@Mike: da es sich um ein Projekt im Studium handelt, wo der IOW Pflichtelement ist, kann ich nicht umstellen!

Danke trotzdem an alle Antworten!
Jörg
Post Reply