Hey, this is my first post here to forgive me if I mess up. I am working with a 18f2550 running at 48 Mhz uising HSPLL. I succesfully used the CDC sample from PBP. MY problem is that I cant get it to work if I change the way I allocate the buffer array. I am simply taking a decimal number, converting it to a string, and sending it to the computer. Can someone tell me what I am doing wrong. It is the simplest thing and I dont understand whats wrong. The Terminal program just freezes as soon as I send something to the pic. I want to use this program to do ADC and send them to my computer.
Code:
@ __CONFIG _CONFIG1L, _PLLDIV_1_1L & _CPUDIV_OSC1_PLL2_1L & _USBDIV_2_1L
define LOADER_USED 1 ' USB Boot loader
define RESET_ORG 1000h
Define OSC 48
buffer var byte[16]
x var byte
y var byte
cnt Var Byte
LED Var PORTB.0
Pause 10
USBInit
Low LED ' LED off
' Wait for USB input
idleloop:
USBService ' Must service USB regularly
cnt = 16 ' Specify input buffer size
USBIn 3, buffer, cnt, idleloop
Toggle LED
y = 123 ; just a random number for test
goto convert
outloop:
USBService ' Must service USB regularly
USBOut 3, buffer ,6 , outloop
Goto idleloop ' Wait for next buffer
convert:
for x = 2 to 0 step -1
buffer[x]=(y dig x) + $30' find digit & convert to ASCII
next x
end
buffer[3]=13
buffer[4]=10
buffer[5]=0
goto outloop
Bookmarks