Ana sayfa | Hakkımda | İletişim | Sosyal platform
YAZILARIM
Konfigürasyon bitleri nereden geliyor?

   Bu yazımda çoğu kişinin kullandığı ama çok az kişinin bilerek kullandığı konfigürasyon bitlerine değinmeye çalışacağım.

 

   CCS C 'de : XT, HS, RC, NOBROWNOUT, NOCPD, NODEBUG .....

   ASM 'de : __CONFIG  _RC_OSC_CLKOUT  & _WDT_OFF.......

Yukarıda bahsettiğim terimleri kullanıyoruz, kullanmak zorundayız. Artık kullanımı kolaylaştırma için üretilen derleyicilerde yukarıdaki gibi tanımlamalar mevcut. Eğer siz de benim gibi işin arka planını merak edenlerdenseniz elbet kendinize sormuşsunuzdur. "Bunlar nereden geliyor?" Bu soruyu ben kendime sordum. Cevabı hakkındaki bilgilere geçmeden önce konfigürasyon bitlerinin ne amaçla kullanıldığı hakkında kısaca bilgi geçmek yararlı olacaktır.

   Konfigürasyon bitleri denetleyicimiz ilk enerjilendiğinde hangi ayarlar üzerinden çalışacağını ifade eder. İşte; PIC 'in hangi osilatör grubunda çalışacağı, yazılım güvenliği, düşük gerilim kullanımı vs.

 Aslında denetleyicide bu aşamada kimlik bilgileri vererek "Sen busun!" deriz.

  Bu konfigürasyon bitlerinin nereden geldiğini merak ediyoruz, şimdi ona değineceğim. Bu bitler ilgili denetleyicinin datasheetinde bariz bir şekilde ortada aslında. Örneğin ben 16f877 'nin datasheet örneği üzerinden gideceğim. 

Aşağıdaki bağlantıdan 119. sayfaya gelin.

http://ww1.microchip.com/downloads/en/DeviceDoc/30292D.pdf  

Bu bitler program belleğinin 2007h adresinde yer alıyor ve 14 bitlik boya sahip.

Aslında biz CCS C üzerinde "#fuses XT, NOCPD, ..." vs.  yapmak yerine,  ASM taglarını kullanarak;

#ASM
CON_FIG  EQU    h'2007'

BSF   CON_FIG, 0
BSF   CON_FIG, 1     ; Konfigürasyon adresinin 0. biti set edildi.
                     ; Burada  HS (high speed) osilatör seçildi.
                                    
#ENDASM

 Bu şekilde yapmak tabiki hamallık olacaktır, fakat bu örneği configürasyon bitlerinin nereden geldiğini ve aslında biz "HS" yazarken arka planda hangi işlemlerin döndüğünü anlamak için gösterdim.

   Bu yazımla beraber CCS C ile programlama işlerine girişenlerin vakit buldukça ASM diline de göz atmalarını tavsiye ediyorum. Böylelikle CCS C de kullanıcı dostu fonksiyonların aslında arka planda nasıl işlediğini daha iyi kavrayacaksınız. Ve inanıyorum ki bunu her kavradığınızda "heeeeee" demenin keyfine varıp, başkalarına bilgi paylaşırken ayaklarınız yere daha sağlam basacaktır. 

ELEKTRO ÇAVUŞ
Ana sayfa | Hakkımda | İletişim | Sosyal platform
ELEKTRO ÇAVUŞ2012 | elektrocavus.com