Yup, that looks right for 1ms polling.
I find that I get the best response by using the USB interrupt to do the USBSERVICE.
It's really easy to do since the USB routines are all in assembly language and can use ASM type interrupts.
But I don't think that will make a 100-300ms difference. There's something else going on.
I use Delphi on the PC side, so I don't know if VB or C# are the same or not, but if I try to send more than one report at a time ... control is not passed back to the program until they've all been sent. And during that time, anything coming back from the PIC gets stuck in the PC's buffer, and then suddenly you have a whole bunch of packets all at once.
Have you timed the response for a single request? Or are there always multiple requests? Something similar could be happening.
Bookmarks