Micro code studio 18f452 derleme hatası

Başlatan . Kağan, 13 Şubat 2021, 15:56:44

. Kağan

İlk defa 18F serisi kullanacağım fakat, "dim" komutunu kullanırken 1. satırda hata vermezken sonraki satırlarda "redefination of label" hatası alıyorum.
Yardım ederseniz sevinirim.



ete

Sebebi çok açık. PBP sa Dim komutu bulunmuyor. Bu nedenle birinciyi etiket adı olarak niteliyor. Ama aynı etiketi ikinci defa görünce hatayı basıyor.
Ete

. Kağan

#2
Alıntı yapılan: ete - 13 Şubat 2021, 19:42:18Sebebi çok açık. PBP sa Dim komutu bulunmuyor. Bu nedenle birinciyi etiket adı olarak niteliyor. Ama aynı etiketi ikinci defa görünce hatayı basıyor.
Ete

18F serisinde bu komuta çok rastlanıyor ve kullanılıyor. Peki bu durumda en etkili ve kolay çözüm nedir acaba? Pbp kullanamayacakmıyım.

Sizin yazınızda;
https://etepic.com/index.php/topic,300.0.html
18F serisinin derlenebildiği yazıyor.
"Dim" yerine kullanılabilecek başka bir komut varmı acaba?

ete

Komutun işemci serisi ile bir alakası yok. DIM komutu PROTON derleyicisine aittir. PBP komutu değildir.
PBP da onun karşılığı VAR dır. Protonda  Dim DAK as Byte şeklinde yazılan komut satırı,
 PBP da, DAK VAR BYTE şeklinde yazılıyor. O komutları VAR içerecek şekilde değiştirirsen ve programda başka Proton komutu yok ise derleme yapılacak ve programın çalışacaktır.

Ete

. Kağan

Selam Erol bey ve forumdaki arkadaşlar,

Sadece "dim DeG[64] as byte" komutunun PBP karşılığını bulamadım. "DeG[64] var byte" şeklinde derlemiyor. Bu komuttaki [64] nedir acaba? Örneklerle öğrenmek daha kolay geliyor. 

Şimdiden teşekkürler.

ete

dim DeG[64] as byte, Proton da 64 elamanlı (0-63) bir dizi değişkeninin tanımlanma şeklidir.
PBP karşılığı DEG VAR BYTE[64]  şeklindedir.

Ete

. Kağan

#6
Sanırım kodlama hatalarını hallettim fakat şimdide derleme sırasında aşağıdaki hata kodlarını görüyorum.

18F serisi için MPASM tikini işaretlesemde  "Unable to execute MPASMX." hatası veriyor. Neden yürütülemiyor acaba?



ete

MCS de view menüsündeki "Compile and Program Options" seçeneğinde çekan ekranda default path butonuna tıklayın. Altta yer alan Use MPASMX kutucuğuna tıklayarak seçili hale getirin.
Başkada bir şey gerekmiyor.
Sorun hala devam ediyor ise Basic kurulumunuz hatalıdır yada ilaçlı bir versiyon kullanmanız gerekecektir.

Ete

. Kağan

#8
Merhaba Erol bey,
Basic yeniden kurdum ilaçlı versiyon. Fakat şimdide derleme sırasında sigorta ayarlarında "etiket yapılandırmasının yeniden tanımlanması" hatası veriyor.
NOT: Sigorta Ayarlar meCONFIG ile yapıldı.


PBP ayarlarım aşağıdaki gibi



ete

Açıkça belliki bir Config veriliş format hatası mevcut.
Bir kelime CONFIG diye başlayınca onu bir config bilgisi verilecek diye algılıyor ama sonrasında gelen her Config yazısı için yeniden tanımlama hatası veriyor.
Sorunun çözümünü düşünmek için Hangi Basic versiyonu kullanıyorsunuz onu bilmek gerekirdi.
Kullandığınız config tanımlama şekli aslında Proton'a aittir PBP da geçerli olamaz.
Sigorta ayarlarınızı aşağıdaki formata uygun hale getirin ve deneyin bakalım.

#CONFIG 
    __CONFIG _CONFIG1H, _OSCS_OFF_1H & _HS_OSC_1H  ;  _HSPLL_OSC_1H       
    __CONFIG _CONFIG2L, _BOR_ON_2L  & _BORV_20_2L & _PWRT_OFF_2L
    __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    __CONFIG _CONFIG3H, _CCP2MX_ON_3H
    __CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L   
    __CONFIG _CONFIG5L, _CP0_OFF_5L & _CP1_OFF_5L & _CP2_OFF_5L & _CP3_OFF_5L
    __CONFIG _CONFIG5H, _CPB_OFF_5H & _CPD_OFF_5H    
    
;    __CONFIG _CONFIG5L, _CP0_ON_5L & _CP1_ON_5L & _CP2_ON_5L & _CP3_ON_5L
;    __CONFIG _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H 
   
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    __CONFIG _CONFIG7L, _EBTR0_OFF_7L & _EBTR1_OFF_7L & _EBTR2_OFF_7L & _EBTR3_OFF_7L
    __CONFIG _CONFIG7H, _EBTRB_OFF_7H 
#ENDCONFIG
Bu format Versiyon 3.x'a aittir. Şayet 2.6 versiyon kullanıyorsanız
Yanlızca #CONFIG yerine ASM ve #ENDCONFIG yerinede ENDASM yazın gerisi aynı kalabilir.

Ete

. Kağan

Erol bey 18f452 ye kadar kullandığım diğer pic derlemelerinde sizin tavsiyeniz üzere meCONFIG ile sigorta ayarlarını yapıyordum fakat hiç hatayla karşılaşmamıştım. Bu durum bu 18f serisine özel bir durummu dur.

Aşağıda ki resimde asm dosyasında hata aldım. Asm dosyasını açıp baktığımda gördüğüm hata ekranınıda en alta ekliyorum.






ete

Kullanmadığım bir sistem hakkında yorum yapamam. Bildiğim şudur. Şayet PBP 2.60 versiyon kullanıyorsanız MCS veriyonunuz 4.0xxxxx olmalı. Şayet versiyon 3.x.xxx kullanıyorsanız MCS versiyonunuz 5.0xxx olmalı. Sizinkisi 3.0 gibi bir versiyon gözüküyor.
MCS de Help sekmesine tıklayın ve açılan pencerede an altta yer alan about butonuna tıklayın.
Gelen ekranı kayda alıp buraya koyun yada bakın orada hem mcs versiyonunuz hemde basic versiyonunuz belirtilmiş olması gerekiyor.
Aslında derleme esnasında sigorta ayarları MPASM içinde yer alan P18F452.inc dosyasından alınıp derleme yapılır. Benzer ayarları program içinde de verirseniz bu sefer iki defa tanımlama yapılmış gibi olur ve derleyici bunu hata mesajı ile bildirir. Bu nedenle 2,62 versiyonda inc dosyasındaki sigorta ayarlarını kapatıyorduk. Böylece yanlızca programdaki ayarlar kullanılıyor idi. 3,0 versiyondan itibaren bu işi otomatik hale getirdiler. inc dosyasında kapatma falan gerektirmiyor. Sizinne kullandığınız anlayamadığım için genel açıklama yapıyorum. Bana göre mcs niz yanlış hataya bu sebep olabilir.

Ete

. Kağan

#12
Üstteki ilk resimde versiyon bilgisini içeren ekranı koymuştum.

PBP 2,47
MCS 3.0.0.5
gibi gözüküyordu bende değiştirdim.

Simdi sizin söylediğiniz gibi aşağıdakini (resimde) yükledim.



Fakat View menüsünde Compile and Program Options seçeneğine ilk girişimde 18f452 desteklenmiyor F10'a basın yazdı


sonra derlemeye başladı ama aşağıdaki hatayı verdi.



‪C:\PBP\pbppi18l.lib dosyasının içinde hata verdiği satır:   

if (((HSER_TXSTA) & 04h) == 0)
ve ayrıca

971.   MOVE?CB macro Cin, Bout
972.      CHK?RP   Bout
973.       if (low (Cin) == 0)
974.      clrf   Bout
975.       else
976.         if (low (Cin) == 255)
977.      setf   Bout
978.         else
979.      movlw   low (Cin)
980.      movwf   Bout
981.         endif
982.       endif
983.       endm

Kırmızı işaretlediğim satırlara hata diyor. Sanırım sigorta ayarları ile ilgili?
Daha sonra kendi asm dosyasındaki hata satırlarıda aşağıdaki ekranda.



Açıklayıcı olmaya çalıştım. :(

ete

o versiyonu hiç kullanmadım. Ancak aşağıdaki açıklamalara göre hareket ederseniz derleyeceğini düşünüyorum.
https://etepic.com/index.php/topic,1687.0.html

Ete

. Kağan

Alıntı yapılan: ete - 03 Mart 2021, 17:17:21o versiyonu hiç kullanmadım. Ancak aşağıdaki açıklamalara göre hareket ederseniz derleyeceğini düşünüyorum.
https://etepic.com/index.php/topic,1687.0.html

Ete


Bir üstteki mesajı editlerken siz cevap yazmışsınız versiyonlarıda değiştirdim. Son durum yukardaki gibi hocam.

Powered by EzPortal