Just gotta figure out now why my adc is all over the place
Are the A/D values all over the place? Or is it the received data at the VB program?
The way it was shown, you'll be sending and receiving a bunch of extra data by transferring the entire buffer, instead of just the data that needs to be used.
HID is packet based, CDC is more like standard serial.
You'll need to consider how many bytes were received, and look for "header" bytes or some other mechanism to sync up the data.
Everything won't just be at byte[x] in the buffer anymore.
<br>
DT
Hi,
I have some mostly working code now using your interrupts thanks to your "hint" about the endpoints earlier...
I was reading another thread that was about "If plugged" - The solution works great monitoring SOFIF and IDLEIF registers - the main loop now does run when the cable is unplugged.
The only case that is still at issue for me is that the device doesnt go passed the "DoUSBinit" subroutine if it's powered on while not connected - which for me is a big deal because the device i'm building is going to be powered up at times with just the LCD i have connected. This LCD is managed by a 16F767 in another device which has some fans too and a light. it's all connected via cat5e cable for one way serial transmission from the 18F4550 via serout2 commands, and i give it 12v and GND each via 3 wires respectively which feed a 7805 and a couple transistors for pulsing the fan speed and light intensity, that all appears to work nicely)
So I guess the last thing to do before I glue everything together (lol) is to get the device to go to the main loop if usb cable is not plugged at initialization time (and have the usb still work after if its eventually plugged in while the device is running).
Anyone else have this "self-powered device" / usbinit kind of issues?
Darrel the "extra" data is for parsing strings that come in after my oncomm event in visual basic. I get the stuff in between the letters- I haven't successfully used "binarymode" in vb .. always stuck with text mode.
I use whats come in between "A" and "B" to fork the other data over to certain variables... there's probobly a much better way to do it... I've already seen instances where manipulating the strings in higher speed timers cause lockups and weird things happening.
But that's not really the right forum for that.. but i'm interested to resolve the issue with the "cable not in during usbinit on device initialization" issue.
Last edited by RYTECH; - 25th November 2008 at 08:46.
Should i wire up an input to the USB V+ and monitor that in addition to the IDLEIF SOFIF registers? USB ---4.7k ----pic input --100k---GND?
Yeah, when it's not connected, it'll never make it to the CONFIGURED_STATE.The only case that is still at issue for me is that the device doesnt go passed the "DoUSBinit" subroutine if it's powered on while not connected
Change the Init routine to this.Code:DoUSBinit: pause 500 usbinit ; initialise USB... USBSERVICE ; service it once UIE = $7F ; enable USB interrupts UEIE = $9F ; enable USB Error interrupts @ INT_ENABLE USB_INT return
DT
Bookmarks