Hallo,

wie stelle ich es an, dass der mega2560 und mein Laptop sich über USB Daten austauschen?

Auf dem mega2560 läuft ein Loop mit 1 Sekunde Pause.
Zu Testzwecken gibt dieser Loop nur einen Print #4 "test" Befehl aus.

Auf meinem Laptop (ubuntu Kernel 2.6.24-23-generic) versuche ich vergebens
die gesendeten bytes vom mega2560 zu bekommen.


Hier der entscheidende Codeauszug:

Code:
/* test */
				usb_detach_kernel_driver_np(udev, 0);
				
				if (usb_claim_interface(udev, 0))
                    {
                      fprintf(stderr,
                              "+++++\nusbdev_open(): %s\n",
                              usb_strerror());
                     
                    }
				
				int numBytes;
				int reset;
				char buffer[64];
				if (usb_clear_halt(udev, dev->config[0].interface[0].altsetting[0].endpoint[0].bEndpointAddress)
					)
                    {
                      fprintf(stderr,
                              "\nclear_halt(): %s\n",
                              usb_strerror());
                     
                    }
				
				if( usb_interrupt_read(udev, dev->config[0].interface[0].altsetting[0].endpoint[0].bEndpointAddress,
				   buffer, sizeof(buffer), 1000)
					)
				{
                      fprintf(stderr,
                              "\nusb_interrupt_read(): %s\n",
                              usb_strerror());
                     
                }


            }
Wie sicher unschwer zu erkennen ist, nutze ich die libusb (Version 0.1.12).
Es scheitert momentan an usb_interrupt_read().
Dort bekomme ich den Fehler "-22" -> error submitting URB: invalid argument.

Da ich gerade erst seit ein paar Tagen damit experimentiere, meine Frage, ob der Weg überhaupt der richtige ist? Also, wie bringe ich am besten den mega2560 und meinen Rechner via USB zum Datenaustausch?

Danke für jeden Tip,
Edgar