Go Down

Topic: usb.task() - Altrnative (Read 619 times) previous topic - next topic

H75FK

Hallo Leute,

ich würde gerne die Bewegungsdaten einer Maus mittels dem Arduino Board Due auslesen. Das funktioniert schon wunderbar.

Doch, da ich die Daten über eine TCP-Verbindung weiterleiten muss, muss ich die dx und dy Werte in eine Variable speichern.

In der Funktion mouseMoved() einer gloablen Varibalen den Werte mouse.getXChange(), übergibt immer den Wert 0. Wie könnte ich am besten die zwei Daten auslesen und ggf. abspeichern?

Tommy56

Zeige doch mal, was Du schon hast. Setze den Sketch bitte in Codetags (</>).
Bitte auch einen Link auf die verwendeten Libs angeben.

Du schreibst ja, dass es funktioniert. Dann solltest Du Dein Problem etwas genauer beschreiben.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

H75FK

Code: [Select]

#include <MouseController.h>

// Initialize USB Controller
 USBHost usb;

// Attach mouse controller to USB
 MouseController mouse(usb);

void setup(){
   Serial.begin(9600);
}

void loop(){
   usb.Task();
}

void mouseMoved() {
   Serial.print("Move: ");
   Serial.print(mouse.getXChange());
   Serial.print(", ");
   Serial.println(mouse.getYChange());
}


Habe diese Libary verwendet:
https://github.com/arduino-libraries/USBHost


Zu meinem Problem nochmal:
Ich will die dx und dy Werte nicht nur ausgeben können, sondern auch in globale Variablen speichern. Doch irgendwie krieg ich das nicht hin.

Tommy56

Wenn die Funktion mouseMoved() die Werte bereits ausgibt, dann kannst Du sie dort doch in die Variablen schreiben.

Code: [Select]

#include <MouseController.h>

// Initialize USB Controller
 USBHost usb;

// Attach mouse controller to USB
 MouseController mouse(usb);

int deltaX, deltaY;

void setup(){
   Serial.begin(9600);
}

void loop(){
   usb.Task();
}

void mouseMoved() {
   deltaX = mouse.getXChange();
   deltaY = mouse.getYChange();

   Serial.print("Move: ");
   Serial.print(deltaX);
   Serial.print(", ");
   Serial.println(deltaY);
}


Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

H75FK

Genau das war auch mein Ansatz! Es kommen aber immer nur 0 raus, obwohl ich die Maus bewegt habe.

H75FK

Merkwürdig, mit deinem Code funktioniert das :S, Vielen Dank :))

Tommy56

Evtl. hast Du bei Deinem Ansatz 2 mal mouse.getXChange(); hintereinander aufgerufen. Nach dem ersten Lesen ist die Änderung 0, bis sich  die Maus wieder bewegt hat.

Gruß Tommy
"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)

Go Up