Arduino AVR USB 2 Mäuse über HUB

OP #3179712
Lesenswert?

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 #3184656
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren