18F2550 İLE USB ÇALIŞMASI dallanma sorunu çözümü :)

Başlatan mesut25, 30 Haziran 2014, 20:21:37

mesut25

merhaba arkadaşlar yenı bir proje ile karşınıza çıkmak istedim ama şurda takıldım dallanma yapamıyorum pıc deki   ledleri yakma satırlarında kalıyor pıc den gelen veri okunmuyor  denemek için bu satırları siliyorum pic den gelen veri okunuyor nerde hata yapıyorum neden return iş bıtırınce geri dönmüyor   anlamadım

include "DESCXW.bas"

DEFINE OSC 48
DEFINE LOADER_USED 1

USBBufferSizeMax   con 8 
USBBufferSizeTX    con 8 
USBBufferSizeRX    con 8 


USBBuffer        Var Byte[USBBufferSizeMax]
USBBufferCount   Var Byte

' ************************************************************

' MicroCode studio  *
' USB ÇALIŞMASI                                 
' ************************************************************
usbinit
TRISB = %00000001
ProgramStart:
gosub DoUSBIn
gosub DoUSBOut
goto ProgramStart 
' PIC LEDİ YAKMAK İÇİN İÇİN
' ************************************************************
DoUSBIn:
PORTB.4 = USBBuffer[0]
PORTB.5 =USBBuffer[1]   
USBBufferCount = USBBufferSizeRX             
USBService                                   
USBIn 1, USBBuffer, USBBufferCount, DoUSBIn   
return

' ************************************************************
' PC VERİ GÖNDERMEK   İÇİN                     
' ************************************************************
DoUSBOut:
USBBuffer[3] = PORTB.0
USBBufferCount = USBBufferSizeTX             
USBService                                   
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut
return


ete

Gördüğüm tek hata  bit değişkenine byte vermeye çalışmışsın.
UsbBuffer isimli değişken byte cinsinden dizi değişkenidir.
Portb.4=usbbuffer(0) komutu ile bit olan adrese byte yerleştirilmeye çalışılıyor.
Altındaki satırda da benzer hata mevcut.
Ete

mesut25

öncelıkle cevabınız için teşekkürler  ben şöyle bir deneme yaptım  önce led yakma satırlarını bırakıp diyer satırları sildim derledim denedim çalıştı sorun yok  sanra led yakma satırlarını sildim pıc den pc veri atma satırlarını bıraktım çalıştı degişkenleride derleyıcı otomatık olarak yazıyor işlem yapan bloklar çalışıyor  iki blogu aynı anda çalıştırmak istendiginde öncelik led yakma bloklarını çalıştırıp orta kalıyor anlamadım gitti

mesut25

#3
ARKADAŞLAR sonunda kodları çalıştırmaya başardım usb çalışması yapıcak arkadaşlara  yardımı olur hemde çok 

usbinit
TRISB = %00000001
ProgramStart:
USBBuffer[3] = PORTB.0
USBBufferCount = USBBufferSizetX               
USBService                                   
USBout 1, USBBuffer, USBBufferCount, ProgramStart         
PORTB.4 = USBBuffer[0]
PORTB.5 =USBBuffer[1]
USBBufferCount = USBBufferSizeRX
USBIn 1, USBBuffer, USBBufferCount, ProgramStart                             
goto ProgramStart

mesut25

#4
include	"DESCsaf.bas"

DEFINE OSC 48
DEFINE LOADER_USED 1

USBBufferSizeMax   con 8  ' maximum buffer size
USBBufferSizeTX    con 8  ' input
USBBufferSizeRX    con 8  ' output

' the USB buffer...
USBBuffer        Var Byte[USBBufferSizeMax]
USBBufferCount   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...
TRISB = %00000111
ProgramStart:
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
USBBuffer[3] = PORTB.0
USBBuffer[4]  = PORTB.1
USBBUFFER[5]  = PORTB.2
USBBufferCount = USBBufferSizerX              ' RX buffer size
   USBService                                   
   USBOut 1, USBBuffer, USBBufferCount, ProgramStart
'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

PORTB.4 = USBBuffer[0]
PORTB.5 =USBBuffer[1]
USBBufferCount = USBBufferSizetX              ' TX buffer size
   USBService                                   
   USBIn 1, USBBuffer, USBBufferCount, ProgramStart   
   goto ProgramStart 



arkadaşlar usb çalışması yapıcak arkadaşların Mİcro code studio nun easyhid usb wizard bir hatası kaynaklana sorunu şu şekilde çözdüm  aslında derleyıcı hazır bır kod sunuyor ama ne yaparsak yapalım dallanma olmuyor kodları aynı satıra yazılmıyor du hatayı ve tek satıra koymayı bu şekilde başardım

USBIn 1, USBBuffer, USBBufferCount, DoUSBIn ve USBOut   1, USBBuffer, USBBufferCount, DoUSBOut   yerine USBIn 1, USBBuffer, USBBufferCount, ProgramStart ve USBOut 1, USBBuffer, USBBufferCount, ProgramStart  yazdım böyece tek satıra programı yazmayı başardım program derlendi ama yine pıc den veri alınamıyordu onuda USBOUT İLE USBIN yerlerini degiştirerek problem çözüldü yukarda son halı bulunmakta kolaygelsin

Powered by EzPortal