U

"not found in macro file" hatası

Başlatan umitco, 11 Temmuz 2013, 16:42:07

umitco

Ete hocam usp uygulaması yapmak için aşağıdaki kodu derlemek istediğimde bu error mesajlarını alıyorum. 

ERROR:MAcro USBINIT? not found in macro file.
ERROR:MAcro LABEL?L not found in macro file.
ERROR:MAcro GODUB?L not found in macro file.
ERROR:MAcro GOTO?L not found in macro file.
ERROR:MAcro USBSERVICE? not found in macro file.
ERROR:MAcro USBBIN?CBBL not found in macro file.
ERROR:MAcro RETURN? not found in macro file.
ERROR:MAcro USBOUT?CBBL not found in macro file.


Bu konuyla ilgili bulabildiğim tek benzer sorun bu ama çeviri yapsamda anlamadım.

http://www.picbasic.co.uk/forum/showthread.php?t=3942


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...
ProgramStart:
   gosub DoUSBIn
   gosub DoUSBOut
   goto ProgramStart 

' ************************************************************
' * receive data from the USB bus                            *
' ************************************************************
DoUSBIn:
   USBBufferCount = USBBufferSizeRX              ' RX buffer size
   USBService                                    ' keep connection alive
   USBIn 1, USBBuffer, USBBufferCount, DoUSBIn   ' read data, if available
   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


Amacım 18F2550 işlemcisini kullanarak USP üzerinden haberleşme yapmak. Yardımcı olabilirmisiniz rica etsem.

ete

#1
USB konusunda hiç çalışmadım. Bunun başlıca sebebi patent ve vendor ücretleri meselesi ve buna bağlı olarak işlemlerin çok açık edilmemiş olması ve en önemliside karmaşık bir konu olması.
Bu nedenle yardımcı olamayacağım maalesef.
Ete

umitco

Hocam hata mesajlarını nasıl giderebileceğimiz konusunda bir fikriniz varmı ? Eğer derleme yapabilrsem EasyHID adındaki bir program sayesinde belki usp yi becerebilirim diye düşünüyorum ama  tıkandığım nokta bu dosyayı derleyememem. Aynı hatayı veren ve yukarıda linkini verdiğim sayfada sorunun çözümünü bulmuş ama anlayamadım.

ete

Bir fikrim olsa gerçekten söylerdim ama yok maalesef.

Ete

umitco

Peki hocam teşekkür ederim , belki USP ile uğraşmış ve becermiş arkadaşlar yardımcı olabilir.

Mucit23

CCS ile uğraşalı belli basic ile kod yazmışlığım yok. Şimdi eski uygulamalarımdan bir tanesiyle uğraşmam gerekti. Fakat derleyemiyorum. Basic ve PBP yüklü, MPASM tanıtılmış. PBP kolasöründe .inc dosyalarında kullandığım işlemcinin config ayarlarını kapattım.


çoklu resim upload

Bu hata neden kaynaklanıyor? Sıfır bir projeyide derleyemiyorum.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

Mucit23

Güncel. Problemi çözemedim. Ete hocam fikriniz varmı?
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

umitco

Kodlar özel değilse paylaşsan bizde denesek

ete

Bu yine olsa olsa sigorta ayarlarının kapatılmaması ile ilgli bir sorun olsa gerek. Owerwritting previous address cümlesi önceden yazılmış bir adresin üzerine yeniden yazma gibi bir şey oluyorki bu tür hata genellikle sigorta ayarlarının iki defa tanıtılması sonucu olmaktadır.
Kullandığın işlemci 16F628, satırları kapatılmış olan 16F628A.INC olmasın?
Gerçi o zamanda 1 tek hata çıkmazdı.
Bana kalırsa ASM dosyasında 64 cü satıra bak bakalım ne komut var orada ancak bu şekilde bulunup anlaşılabilir.

Ete

Mucit23

Evet hocam 1. bahsettiğiniz problem vardı. Şimdi hem 16F628 hemde A serisinin config ayarlarını kapattım. Ama bu seferde dediğiniz gibi birden fazla hata veriyor.

hızlı resim yükle
Kurulumda hata vardır diye kaldırıp yeniden kurdum ama değişen birşey olmadı.

Kodlardada birşey yok. Daha önce derleyip çalıştırdığım kodlar.
DEFINE OSC 4

@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_ON & _MCLRE_OFF & _LVP_OFF & _CP_OFF

TRISA=%00001111
TRISB=%11110000
PORTA=0:PORTB=0

DEFINE HSER_RCSTA 90h ' Enable serial port & continuous receive
DEFINE HSER_TXSTA 24h ' Enable transmit, BRGH = 1
DEFINE HSER_SPBRG 25  ' 9600 Baud @ 4MHz, 0,16%
DEFINE HSER_CLROERR 1 ' Clear overflow automatically
DEFINE HSER_BAUD 9600 ' BaudRate 9600

DEFINE CCP1_REG   PORTB
DEFINE CCP1_BIT   3

T2CON = 4
CMCON = 7
PR2   = 25  'PWM Frekansı 38KHz ayarlanıyor.

DUTY VAR BYTE
BDATA VAR BYTE

GOSUB PWM_INIT
GOSUB PWM_ON

BASLA:
GOSUB BUTON_READ
HSEROUT ["M","C","T",BDATA]
GOTO BASLA

BUTON_READ:
  BDATA=($F0&PORTB)+($0F&PORTA)
RETURN

PWM_INIT:
  DUTY=52           ;%50 DUTY CYLE
  CCP1CON.4=DUTY.0
  CCP1CON.5=DUTY.1
  CCPR1L=DUTY>>2
RETURN

PWM_ON:
  CCP1CON.2=1       ;PWM ON
  CCP1CON.3=1       ;PWM ON
RETURN

PWM_OFF:
  CCP1CON.2=0
  CCP1CON.3=0
RETURN
END
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

#10
Hata mesajlarına bakılırsa senin MPASM klasöründe bir sorun var.
Ya bu klasörün adresini doğru şekilde gösteremedin yada bu klasör içinde P16F628.INC dosyası yer almıyor.
Normal şartlarda MPASM klasörü Proteus/Tools klasörü içinde yer alıyor tabiiki özel olarak MPASM kurmadı isen.
Bu klasörü aç ve içinde P16F628.INC ve P16F628A.INC dosyalarının olup olmadığını kontrol et.

Tabiiki MCS de View/Compile and Program OPtions/Assembler seçeneğinde MPASM seçili olmalı ve klasör adreside gösterilmiş
olmalıdır.

Ayrıca yine belirteyimki Win-7 ve Win-8 de artık çalışma klasörleri Program Files içinde değil ProgramData isimli klasörde açılıyor. Sonuç olarak içinde P16F628.INC dosyası olen MPASM klasörünü bulup onun adresini MCS de Assembler seçeneğinde göstermen gerekiyor.

Hemen belirteyim bende sorunsuz derleniyor.

Ete

Mucit23

Bendeki MPASM klasöründe dediğiniz gibi p16f628a.inc yokmuş. Pic16F628 ile derledim ama daha önceden basicde yazarken böyle bir sorunla karşılaşmıyordum. Proteusu tekrar kurayım bakalım gelecekmi?
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

umitco

Bendede aynı hatayı veriyor ama sigorta ayarlarını bu şekilde kullanırsam (MPASM ile)  derliyor.

@ DEVICE pic16F628A
@ DEVICE pic16F628A, WDT_OFF
@ DEVICE PIC16F628A, PWRT_ON             
@ DEVICE pic16F628A, PROTECT_OFF
@ DEVICE pic16F628A, MCLR_OFF
@ DEVICE pic16F628A, LVP_OFF
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT

Kod içinde hiç sigorta ayarları yapmadığımda PBP klasöründeki 16F628A.inc dosyasında else koşulundan sonraki sigorta ayarları MPASM kullanıldığında alınan ayarlar , MPASM kullanılmadığında ve kodda sigorta ayarı verilmemişse if koşulundan sonraki ayarlar kullanılıyor

       

Powered by EzPortal