Content originally posted in LPCWare by sjalloq on Mon Apr 04 07:10:20 MST 2011
That PDF link above is a good starting place and once you understand the different USB transfer mechanisms you'll be better placed to know what is appropriate for your application.
For example, you could write something as simple as a vendor specific control request that reads your ADC value whenever it is polled. I think this would also involve the least amount of programming on the host side too.
Take a look at any of the HID examples and think about whether they would work for you. A keyboard, for example, works by having the host regularly poll the device for key presses. You could replace the key press data with your ADC readings - obviously creating your own HID report type and writing the host software to handle it.
Start with the basics of USB such as the different stages and packet types, then move onto Control transfers, then try to get your head around how something as simple as a HID device works. Then worry about your app.