revisied code with a speed test added
Code:
' USB sample program for PIC18F4550 CDC serial port emulation
' Requires PBP 2.60 or later
' Compilation of this program requires that specific support files be
' available in the source directory. For detailed information, see
' the file PBP\USB18\USB.TXT.
Include "cdc_desc.bas" ' Include the HID descriptors
Define OSC 48
trise.3 = 0
buffer Var Byte[16]
cnt Var Byte
OSCTUNE.6 = 1 ' Enable PLL for 18F87J50 family
Pause 10
'*****************************************
'--------------Speed test
speedtest:
toggle porte.3
goto speedtest
'--------------End test
'******************************************
USBInit ' Get USB going
' Wait for USB input
idleloop:
USBService ' Must service USB regularly
cnt = 16 ' Specify input buffer size
USBIn 3, buffer, cnt, idleloop
' Message received
buffer[0] = "H"
buffer[1] = "e"
buffer[2] = "l"
buffer[3] = "l"
buffer[4] = "o"
buffer[5] = " "
buffer[6] = "W"
buffer[7] = "o"
buffer[8] = "r"
buffer[9] = "l"
buffer[10] = "d"
buffer[11] = 13
buffer[12] = 10
buffer[13] = 0
outloop:
USBService ' Must service USB regularly
USBOut 3, buffer, 14, outloop
Goto idleloop ' Wait for next buffer
the results of the speed test: pin toggles at 3Mhz. To be clear, there is .3333uS between toggles. Now I don't feel like that is correct. lets see: 48Mhz=12Mips. So thats .08uS per instruction? So we are executing 4 instructions? Hmm, that doesn't sound right.
Ok, I will see if someone else can think better then I this evening
Bookmarks