Pic Basic ile 18F sersi MCU configürasyon ayarları

Başlatan Mucit23, 23 Aralık 2010, 18:36:09

Mucit23

Merhaba arkadaşlar .
Arkadaş pic basicde 18F serisi mikrodenetleyicilerle uygulamalar yaparken hep sorun yaşıyorum. 18F serisi işlemcilerin configürasyon ayarlarının ayrıntılı bir şekilde yapılması gerekiyormuş. Derleyici olarak proteusun tools klasörü içindeki Mpasm 'yi tanıtıyorum. Burada sorun yok galiba. Şimdiye kadar bir tek 18F452 i için sorunsuz derleme yapabildim. Bununda nasıl yapılacağını ete hoca söylemiştim configürasyon ayarlarını o vermişti. Diğer işlemcilerde derleme yapamıyorum. Configürasyon ayarları neye göre yapıyor. Şimdi 18F252 için basit bir uygulama yapıcamda derlemeye çalıştığımda binbir çeşit hata veriyor. 18F252 ve diğer 18Fserisi işlemcilerin ayarlarını nasıl yapmam gerekiyor.

Maxim

her işlemcinin kendi datasheetinde o işlemciye ait configurasyon ayarları bulunuyor
oraya bakarak tek tek ayarları yapabilirsin ,

tazmania

bende aynı derdi yaşıyorum. hightecin içerindeki 18f4550.h içerisindeki değerler ile datasheettekiler farklı. tam kafayı yemelik.

Mucit23

Cevabınız için teşekkürler
Uygulamada çok sorunum var...
Datasheeti inceledim dediğiniz  gibi configürasyon ayarları yazıyor. Sayfa 27 ile 28 de bi tablo verilmiş orada bazı şeyler anlatılmış.
Benim daha çok uygulamada sorunum var. O kodları  normal bi 16F877 ye yaptığımız configürasyon ayarları gibi mi yazıcağız, Yoksa ASM olarakmı yazıcağız.
asm    
       __CONFIG _CONFIG1H, _OSCS_OFF_1H & _XT_OSC_1H   
       __CONFIG _CONFIG2L, _BOR_ON_2L & _BORV_20_2L & _PWRT_OFF_2L       
       __CONFIG _CONFIG2H, _WDT_ON_2H & _WDTPS_128_2H     
       __CONFIG _CONFIG3H, _CCP2MX_OFF_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 _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 
endasm

Ete hoca bana bu kodları vermişti. 18F452 için bu kodu kullanıyordum.

Kodların nasıl yazılacağı hakkında fikir almak istiyorum.Hangi kurllara uymalıyım. İşlem sırası nelerdir. Bunun gibi bilgiler lazım

ete

Pic Basic için konuşmak gerekir ise 18F serisinin derlenmesi için MPASM kullanılması gerekiyor.
Bu nedenle yalnızca config ayarlarının MPASM formatına uygun verilmesi gerekmektedir.
Derlemenin sıhhatli yapılabilmesi için bu ayarlarında detaylı verilmesinde yarar vardır.
Her şeyden önce PBP2xx klasörü içindeki  18Fxxx.INC dosyası içinde bulunan config ayarlarının kapatılması gerekiyor.
Çünki derleme esnasında önce bu dosyaya daha sonrada MPASM klasörü içindeki  P18Fxxx.INC dosyasına bakılmaktadır.
Derleyici her iki dosyada da config ayarı görürse duplicate komut hatası vermektedir. Bu nedenle 18F serisi için PBP2xx klasöründe yer alan INC uzantılı dosyada yer alan config ayarlarının kapatılması yada silinmesi gerekiyor.

Bu işlemden sonra kullandığını işlemci için hangi ayarların ne şekilde kullanıldığını görmeniz için MPASM içindeki P18Fxxx.INC dosyası iyi bir kaynaktır. Dosyayı MCS de açabileceğiniz gibi Notepad ilede açabilir içine bakabilirsiniz. Dosyanın sonuna doğru bütün config ayarlarını görebilirsiniz.
Hepsinin yazılış formatı orada olduğu gibi olacaktır.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Maxim

proton plus da config ayarıda bu şekilde mesela

18F2520 için

CONFIG_START
   OSC  = INTIO67 ; Internal oscillator block, port function on RA6 and RA7
   FCMEN  = OFF ; Fail-Safe Clock Monitor disabled
   IESO  = OFF ; Oscillator Switchover mode disabled
   PWRT  = On ; PWRT enabled
   BOREN  = OFF ; Brown-out Reset disabled in hardware and software
   BORV  = 0 ; Maximum setting
   WDT  = OFF ; WDT disabled (control is placed on the SWDTEN bit)
   WDTPS  = 1 ; 1:1
   MCLRE  = OFF ; RE3 input pin enabled; MCLR disabled
   LPT1OSC  = OFF ; Timer1 configured for higher power operation
   PBADEN  = OFF ; PORTB<4:0> pins are configured as digital I/O on Reset
   CCP2MX  = PORTC ; CCP2 input/output is multiplexed with RC1
   STVREN  = OFF ; Stack full/underflow will not cause Reset
   LVP  = OFF ; Single-Supply ICSP disabled
   XINST  = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
   Debug  = OFF ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
   CP0  = OFF ; Block 0 (000800-001FFFh) not code-protected
   CP1  = OFF ; Block 1 (002000-003FFFh) not code-protected
   CP2  = OFF ; Block 2 (004000-005FFFh) not code-protected
   CP3  = OFF ; Block 3 (006000-007FFFh) not code-protected
   CPB  = OFF ; Boot block (000000-0007FFh) not code-protected
   CPD  = OFF ; Data EEPROM not code-protected
   WRT0  = OFF ; Block 0 (000800-001FFFh) not write-protected
   WRT1  = OFF ; Block 1 (002000-003FFFh) not write-protected
   WRT2  = OFF ; Block 2 (004000-005FFFh) not write-protected
   WRT3  = OFF ; Block 3 (006000-007FFFh) not write-protected
   WRTB  = OFF ; Boot block (000000-0007FFh) not write-protected
   WRTC  = OFF ; Configuration registers (300000-3000FFh) not write-protected
   WRTD  = OFF ; Data EEPROM not write-protected
   EBTR0  = OFF ; Block 0 (000800-001FFFh) not protected from table reads executed in other blocks
   EBTR1  = OFF ; Block 1 (002000-003FFFh) not protected from table reads executed in other blocks
   EBTR2  = OFF ; Block 2 (004000-005FFFh) not protected from table reads executed in other blocks
   EBTR3  = OFF ; Block 3 (006000-007FFFh) not protected from table reads executed in other blocks
   EBTRB  = OFF ; Boot block (000000-0007FFh) not protected from table reads executed in other blocks
CONFIG_END

Mucit23

Hocam teşekkürler ilginiz için
Şu windows 7 beni yedi bitirdi :(
PBP klasöründeki klasöründeki ilgili inc dosyasındaki configürasyon ayarlarını pasif hale getirmeye çalışıyorum fakat not defteri izin vermiyor. Yani not defterinde değişiklik yaptığım zaman kaydetmek istediğimde eski klasörün üzerine kaydedemiyorum. Kaydetmeye çalıştığığımda erişim engellendi diyor not defteri. Acaba eski klasörü silip aynı isimde kaydetsem sorun olurmu

Mucit23

ETE hocam PBP deki inc klasörünü değiştirdim. Configürasyon ayarlarını pasif hale getirdim.
mpasm deki 18f252.inc  klasöründe yazılan konfigürasyon ayarlarını olduğu gibi yazdım. Fakat mcs de derlerken yine hata veriyor. Resmini çektim sorun nerede olabilir.
http://[IMG]http://img442.imageshack.us/img442/8821/adszhez.png[/img]

Uploaded with ImageShack.us

Mucit23

hocam anlamıyorum. mpasm deki inc klasörününde yazılan konfigürasyon ayarlarını yazıyorum ama  nedense Trıs yazmaçları ile ilgili hata veriyor resimdende anlaşılacağı gibi mor renkli oluyor. Nerede sorun olabilir sizce