pic18f4550 usb usart uygulaması sorunu

Başlatan dnaci, 28 Ocak 2012, 10:29:07

dnaci

Merhaba arkadaşlar, basicte usb ve usart uygulaması üzerinde çalışıyorum ancak bir problemle karşılaştım ve çözümü bir türlü bulamıyorum. Projeyi proton basic üzerinde geliştiriyorum, biliyorum burası pic basic pro ile ilgili bir forum ancak mantık aynı ikiside basic.

usb bağlantısı ve usart konusunda bir problemim yok, usart projesi geliştirebiliyorum. usb projeside, ancak ikisi bir arada iken usb bağlantım kopuyor, nasıl bir kodlama tavsiye dersiniz.  veriyi nasıl buffera aktarabilirim. (kod ham koddur, hatalar olabilir, fikir vermesi için ekliyorum, hserin komutu pc ile programın bağlantısını koparıyor. projeyi gerçekte donanım üzerinde çalıştırıyorum)


Device = 18F4550
XTAL = 48   

Declare PORTB_PULLUPS 1
Declare ADIN_RES 8
Declare ADIN_STIME 50

HSERIAL_RCSTA = 90H ; Enable continuous receive
HSERIAL_TXSTA = 20H  ; Enable transmit, BRGH = 1
HSERIAL_SPBRG = 25 ; Baud Rate Generator Value
HSERIAL_CLEAR = On  ; Clear overflow automatically
RCSTA = 144 ; Enable continuous receive
TXSTA = 36  ; Enable transmit, BRGH = 1
SPBRG = 129 ; Baud Rate Generator Value

' descriptor file, located in \inc\usb_18 - a copy
' is located in the same folder as this file   
USB_DESCRIPTOR = "picusbproject5desc.inc"

Symbol USBBufferSizeMax = 32
Symbol USBBufferSizeTX  = 8
Symbol USBBufferSizeRX  = 32

Dim    USBBuffer[USBBufferSizeMax] As Byte

' some useful flags...
Dim PP0 As Byte SYSTEM        ' USBPOLL status return
Symbol CARRY_FLAG = STATUS.0  ' high if microcontroller does not have control over the buffer
Symbol ATTACHED_STATE = 6     ' is USB attached
   
' ************************************************************
' * main program loop - remember, you must keep the USB      *
' * connection alive with a call to USBPoll, USBIn or USBOut *
' * every couple of milliseconds or so                       *
' ************************************************************

' ************************************************************
TRISA = %11111111
TRISB = %11111111
TRISC = %11111111
' ************************************************************
ALL_DIGITAL=true

GoSub AttachToUSB

veri=usbbuffer[0]

ProgramLoop:

HSerIn [Wait("test"),veri]  'kopmaya neden olan satır. pc ile donanım arasındaki bağlantıyı koparıyor.

'USBBuffer[0]=0
USBBuffer[1]=0
USBBuffer[2]=0
USBBuffer[3]=0
USBBuffer[4]=0
USBBuffer[5]=0
USBBuffer[6]=0
USBBuffer[7]=0
     
 
   USBOut 1, USBBuffer, USBBufferSizeTX
   USBIn 1, USBBuffer, USBBufferSizeRX, ProgramLoop
   GoTo ProgramLoop

' ************************************************************
' * receive data from the USB bus                            *
' ************************************************************
DoUSBIn:
   USBIn 1, USBBuffer, USBBufferSizeRX, DoUSBIn
   Return
 
' ************************************************************
' * transmit data                                            *
' ************************************************************
DoUSBOut: 
   USBOut 1, USBBuffer, USBBufferSizeTX, DoUSBOut
   Return

' ************************************************************
' * wait for USB interface to attach                         *
' ************************************************************
AttachToUSB:
   Repeat                               
      USBPoll       
   Until PP0 = ATTACHED_STATE
   Return   

Powered by EzPortal