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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.