Arduino AVR USB 2 Mäuse über HUB

OP #3179712
Hallo Leute!

Ich habe einen Arduino Zuhause und habe mir das USB Host Shield von Oleg 
gekauft, nun will ich über einen HUB die X und Y Daten beider Mäuse 
abfragen.

Also X1 , X2, Y1, Y2. Ich habe seine Library downgeloadet und habe es 
geschafft eine Maus über den Hub anzusteuern aber sobald ich eine zweite 
dazu anschließe, funkts nicht und wenn ich den Code umschreibe sodass 
beide gehen sollten dann gibt es viele Störungen und ich bekomm nur ab 
und zu irgendwelche Signale wobei ich nicht genau weis was für welche.

Oleg selber meinte es könnte etwas mit der Poll funktion nicht stimmen

Hoffe es kann mir da jemand helfen

Mfg
Tuncay
OP
Dies wäre ein etwas umgeschriebener Code, aber er funktioniert nicht :(

[code]#include <avr/pgmspace.h>
#include <avrpins.h>
#include <max3421e.h>
#include <usbhost.h>
#include <usb_ch9.h>
#include <Usb.h>
#include <usbhub.h>
#include <avr/pgmspace.h>
#include <address.h>
#include <hidboot.h>
#include <printhex.h>
#include <message.h>
#include <hexdump.h>
#include <parsetools.h>

class MouseRptParser : public MouseReportParser
{
protected:
  virtual void OnMouseMove  (MOUSEINFO *mi);
  virtual void OnLeftButtonUp  (MOUSEINFO *mi);
  virtual void OnLeftButtonDown  (MOUSEINFO *mi);
  virtual void OnRightButtonUp  (MOUSEINFO *mi);
  virtual void OnRightButtonDown  (MOUSEINFO *mi);
  virtual void OnMiddleButtonUp  (MOUSEINFO *mi);
  virtual void OnMiddleButtonDown  (MOUSEINFO *mi);
};
void MouseRptParser::OnMouseMove(MOUSEINFO *mi)
{
    Serial.print("dx=");
    Serial.print(mi->dX, DEC);
    Serial.print(" dy=");
    Serial.println(mi->dY, DEC);
};
void MouseRptParser::OnLeftButtonUp  (MOUSEINFO *mi)
{
    Serial.println("L Butt Up");
};
void MouseRptParser::OnLeftButtonDown  (MOUSEINFO *mi)
{
    Serial.println("L Butt Dn");
};
void MouseRptParser::OnRightButtonUp  (MOUSEINFO *mi)
{
    Serial.println("R Butt Up");
};
void MouseRptParser::OnRightButtonDown  (MOUSEINFO *mi)
{
    Serial.println("R Butt Dn");
};
void MouseRptParser::OnMiddleButtonUp  (MOUSEINFO *mi)
{
    Serial.println("M Butt Up");
};
void MouseRptParser::OnMiddleButtonDown  (MOUSEINFO *mi)
{
    Serial.println("M Butt Dn");
};

USB     Usb;
USBHub     Hub(&Usb);


HIDBoot<HID_PROTOCOL_MOUSE> Mouse1(&Usb);
HIDBoot<HID_PROTOCOL_MOUSE> Mouse2(&Usb);

uint32_t next_time;

MouseRptParser                               Prs1;
MouseRptParser                               Prs2;

void setup()
{
    Serial.begin( 115200 );
    Serial.println("Start");

    if (Usb.Init() == -1)
        Serial.println("OSC did not start.");

    delay( 200 );

    next_time = millis() + 5000;

    Mouse1.SetReportParser(0,(HIDReportParser*)&Prs1);
    Mouse2.SetReportParser(0,(HIDReportParser*)&Prs2);
}

void loop()
{
  Usb.Task();
}[code]

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.