SD kütüphanesinde dublicate hatası

Başlatan Mizzrym, 09 Nisan 2017, 14:40:38

Mizzrym

Merhabalar. Proton için indirdiğim kütüphane dosyasında, dublicate hatası alıyorum. Mesela kendi içinde koda başlarken PORTB.0 = 0 yazmış. Kodun devamında doğal olarak bir yerde bunu PORTB.0 = 1 yapmış. Bunu, 2 kere tanımlamış diye hata olarak gösteriyor compiler. Aynı hatayı picbasicte de alıyorum.
Kullandığım versiyonlar;

Proton Ide 2.0.1.0
Compiler: 3.5.7.1

PBP 4.0.0.0
Compiler : PBP 2.60L


Hatalar şunlar ; (İnternetteki çözümlerde 18f2550.inc dosyasında girip DEBUG satırını comment yapınca düzeliyor yazıyordu, denedim olmadı)

Dublicate Label Name Found 'SD_SEND_CMD'! (SD_File_System.pbp)
Dublicate Label Name Found 'SD_SEND_BYTE'! (SD_File_System.pbp)
Dublicate Label Name Found 'SD_RECIEVE_CMD'! (SD_File_System.pbp)

ete

Programın içinde hem yazılımsal SPI hemde donanımsal SPI kullanımına ait satırlar mevcut.
İkisinden biri kullanılmalı. He riki sisteme ait satırları açık bırakıp derlersen bunların çift olduğu ikazını yada hatasını alırsın.
Şayet Donanımsal SPI pinlerini kullanıyor isen yazılımsal olan satırları kapatman gerekir.  Yanlarında yazıyor zaten. SD_Send_Cmd: 'Software SPI Version ...... bu yazılmsal SPI satırları
SD_Send_Cmd: 'MSSP Version..................bu da donanımsal SPI satırları.
Hangisini kullanacak isen diğerini kapatman ve sonra derleme yaptırman gerekir.

Benzer şekilde,
SD_Receive_Byte:
SD_Send_Byte:
etiketleri için de kullanılan açık bırakılıp diğeri kapatılacaktır.

Ete

Mizzrym

#2
Hocam teşekkür ederim. Öncelikle, 2 sinin farkı tam olarak nedir?. Donanımsal ve yazılımsal dediniz. SD Karta yazmaya çalışıyorum. Hangisini seçmeliyim?.


Ayrı ayrı kaldırınca aldığım hataları ekliyorum.
http://etepic.com/index.php?topic=1060.0
http://etepic.com/index.php/topic,2816.msg26790.html#msg26790

inceliyorum hocam. Bakalım

ete

Donanımsal olanı diğerine göre en az 10 kat hızlıdır ancak o iş için ayrılmış pinleri kullanmak zorundasın o pinler başka amaçlı kullanılamaz.

Ortaya çıkan son hatalar işlemciye ait sigorta ayarlarının "işlemci.inc" dosyasında kapatılmamasından oluyor. Yani derleme esnasında hem basic klasöründeki inc dosyasından hemde mpasm klasöründeki inc uzantılı dosyadan sigorta ayarı alınıyor. Dosyalardan birinde sigorta ayarları kapatılıp teke düşürülmelidir oda badic klasöründeki inc uzantılı dosyadır. Detaylu bilgi bu sitede önemli bilgiler başlığı altı daki sigorta ayarları ile ilgili açıklamada mevcut.

Ete

Mizzrym

Hocam cevap için teşekkürler. Önemli bilgiler kısmına baktım. @ile başlayan kodlar ve Picbasic için yazmışsınız.  ProtonBasic te MPASM kutucuğun görünmüyor PBP'deki gibi. ama 18f serisi kullanıyorum. Protonbasicte birebir işlemler aynı mı?. Aynı olduğunu varsayarak,

C:\Program Files (x86)\Microchip\MPASM Suite kısmında P18f2550.inc i buldum ve .bas açarmış gibi açtım.
Bahsedilen @Config veya _Config li tanımlamar bu dosyanın içinde yok. _CONFIG1L  EQU  H'300000' gibi şeyler var. Dosyayı ekliyorum.

Fakat başlığınızda yazdığınız tip kodları PPI dosyasının içinde bulabildim. Onlarda da ASM  ENDASM'ler yoktu. Ekliyorum.
[DEFCONFIGSTART]
ifndef CONFIG_REQ
ifdef PLL@REQ ; Do we require the PLL ?
__config Config1L, PLLDIV_5_1 & CPUDIV_OSC1_PLL2_1 & USBDIV_2_1
__config Config1H, FOSC_HSPLL_HS_1
Else
__config Config1H, FOSC_HSPLL_HS_1
EndIf
__config Config2L, PWRT_OFF_2 & BOR_ON_2 & BORV_3_2 & VREGEN_ON_2
ifdef WATCHDOG_REQ
__config Config2H, WDT_ON_2 & WDTPS_128_2
Else
__config Config2H, WDT_OFF_2 & WDTPS_128_2
EndIf
__config Config3H, PBADEN_OFF_3
ifdef DEBUG@REQ ; Do we require DEBUG ?
__config Config4L, LVP_OFF_4 & XINST_OFF_4 & DEBUG_ON_4
Else
__config Config4L, LVP_OFF_4 & XINST_OFF_4 & DEBUG_OFF_4
EndIf
EndIf
[DEFCONFIGEND]




ete

Konu bilgim dışında maalesef.  Derlemede iki defa config görüyorsa ikinciyi nerede görüyor ona bakmak gerek.
Daha fazla yardımcı olamayacağım.

Ete

Powered by EzPortal