iugmoh
- 16th April 2008, 17:56
Hi all, thanks for all members in our favorite forum
I build the USBDEMO and I can play with PIC and VB6 which add new interface in our knowledge.
now I want to update my code so I can control of mouse cursor , I saw that there are an example usbmouse but not working with PIC18F4455.
so I need help in this problem
Here is my code which nothing happened to mouse cursor:
' Pic Configuration
' =================
asm
__CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC3_PLL4_1L & _USBDIV_2_1L ;20Mhz
__CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ;20Mhz
__CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _BORV_2_2L & _VREGEN_ON_2L
__CONFIG _CONFIG2H, _WDT_OFF_2H
__CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H
__CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
endasm
DEFINE OSC 48
USBBufferSizeMax con 8 ' maximum buffer size
USBBufferSizeTX con 8 ' input
USBBufferSizeRX con 8 ' output
' the USB buffer...
USBBuffer Var Byte[USBBufferSizeMax]
USBBufferCount Var Byte
loopcnt var byte
state var byte
' ************************************************** **********
' * main program loop - remember, you must keep the USB *
' * connection alive with a call to USBService every couple *
' * of milliseconds or so... *
' ************************************************** **********
usbinit ' initialise USB...
usbbuffer[0] = 0
usbbuffer[1] = 0
usbbuffer[2] = 0
usbbuffer[3] = 0
usbbuffer[5] = 0
usbbuffer[6] = 0
usbbuffer[7] = 0
ProgramStart:
movecursor:
For state = 0 to 3 ' Move through each state
For loopcnt = 1 to 16 ' 16 steps in each direction
Branch state, [up, right, down, left]
up:
usbbuffer[1] = 0
usbbuffer[2] = -2
Goto endgame
down:
usbbuffer[1] = 0
usbbuffer[2] = 2
Goto endgame
left:
usbbuffer[1] = -2
usbbuffer[2] = 0
Goto endgame
right:
usbbuffer[1] = 2
usbbuffer[2] = 0
endgame:
gosub DoUSBOut
Next loopcnt
Next state
goto ProgramStart
' ************************************************** **********
' * receive data from the USB bus *
' ************************************************** **********
DoUSBIn:
USBBufferCount = USBBufferSizeRX ' RX buffer size
USBService ' keep connection alive
USBIn 1, USBBuffer, USBBufferCount, contiue ' read data, if available
; recived
portb=usbbuffer[0] ' portb.7
contiue:
return
' ************************************************** **********
' * wait for USB interface to attach *
' ************************************************** **********
DoUSBOut:
USBBufferCount = USBBufferSizeTX ' TX buffer size
USBService ' keep connection alive
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut ' if bus available, transmit data
return
I build the USBDEMO and I can play with PIC and VB6 which add new interface in our knowledge.
now I want to update my code so I can control of mouse cursor , I saw that there are an example usbmouse but not working with PIC18F4455.
so I need help in this problem
Here is my code which nothing happened to mouse cursor:
' Pic Configuration
' =================
asm
__CONFIG _CONFIG1L, _PLLDIV_5_1L & _CPUDIV_OSC3_PLL4_1L & _USBDIV_2_1L ;20Mhz
__CONFIG _CONFIG1H, _FOSC_HSPLL_HS_1H & _FCMEN_OFF_1H & _IESO_OFF_1H ;20Mhz
__CONFIG _CONFIG2L, _PWRT_ON_2L & _BOR_ON_2L & _BORV_2_2L & _VREGEN_ON_2L
__CONFIG _CONFIG2H, _WDT_OFF_2H
__CONFIG _CONFIG3H, _MCLRE_ON_3H & _LPT1OSC_OFF_3H & _PBADEN_OFF_3H & _CCP2MX_ON_3H
__CONFIG _CONFIG4L, _STVREN_ON_4L & _LVP_OFF_4L & _XINST_OFF_4L & _DEBUG_OFF_4L
endasm
DEFINE OSC 48
USBBufferSizeMax con 8 ' maximum buffer size
USBBufferSizeTX con 8 ' input
USBBufferSizeRX con 8 ' output
' the USB buffer...
USBBuffer Var Byte[USBBufferSizeMax]
USBBufferCount Var Byte
loopcnt var byte
state var byte
' ************************************************** **********
' * main program loop - remember, you must keep the USB *
' * connection alive with a call to USBService every couple *
' * of milliseconds or so... *
' ************************************************** **********
usbinit ' initialise USB...
usbbuffer[0] = 0
usbbuffer[1] = 0
usbbuffer[2] = 0
usbbuffer[3] = 0
usbbuffer[5] = 0
usbbuffer[6] = 0
usbbuffer[7] = 0
ProgramStart:
movecursor:
For state = 0 to 3 ' Move through each state
For loopcnt = 1 to 16 ' 16 steps in each direction
Branch state, [up, right, down, left]
up:
usbbuffer[1] = 0
usbbuffer[2] = -2
Goto endgame
down:
usbbuffer[1] = 0
usbbuffer[2] = 2
Goto endgame
left:
usbbuffer[1] = -2
usbbuffer[2] = 0
Goto endgame
right:
usbbuffer[1] = 2
usbbuffer[2] = 0
endgame:
gosub DoUSBOut
Next loopcnt
Next state
goto ProgramStart
' ************************************************** **********
' * receive data from the USB bus *
' ************************************************** **********
DoUSBIn:
USBBufferCount = USBBufferSizeRX ' RX buffer size
USBService ' keep connection alive
USBIn 1, USBBuffer, USBBufferCount, contiue ' read data, if available
; recived
portb=usbbuffer[0] ' portb.7
contiue:
return
' ************************************************** **********
' * wait for USB interface to attach *
' ************************************************** **********
DoUSBOut:
USBBufferCount = USBBufferSizeTX ' TX buffer size
USBService ' keep connection alive
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut ' if bus available, transmit data
return