5 Kasım 2018

CCS C Önişlemci Komutları

Bu komutlar cihaz çalışmaya başlamadan önce cihaza belirli işlemleri yaptırmak için kullanılır.

Bu komutlardan sadece 5 tanesini bu derste vereceğiz. Diğer önişlemci komutlarını ise ilerleyen derslerde ele alacağız.

En çok kullanacağımız önişlemci komutları şunlardır;

  1. #include
  2. #define
  3. #device
  4. #use delay
  5. #use fast_io
  6. #use fixed_io
  7. #use adc
  8. #fuses

Şimdi gelin bu komutları ele alalım;

1- #include : Yazacağımız programa harici dosya eklemek için kullanılır. Örnek olarak her programın başında kullanacağımız denetleyicinin tanımlama dosyasını içe aktarmamız gerekmektedir. Bu gibi durumlarda #include komutu kullanırız.

Sözdizimi #include <dosyaAdi.uzanti> şeklindedir.

Şimdi örnek olarak programlamada kullanacağımız 16F877A denetleyicisinin tanımlama dosyasını programımıza ekleyelim;

2- #define : Sabit tanımlamak için kullanılır. Sabitlere tanımlandığında atanan değer program boyunca değişmez. Örnek olarak pi sayısı değeri 3,14’tür. Biz bu sayının program içerisinde hiç değişmesini istemeyiz. Böyle durumlarda sabit tanımlamaya ihtiyaç duyabiliriz.

Örnek olarak pi sayısını sabit olarak tanımlayalım;

Yukarıdaki kodu yazdığımızda programımız artık her “pi” gördüğü yerde 3.14 sayısı varmış gibi davranır.

3- #device : Device komutu cihaz ayarlarını tanımlamak için kullanılır.

4- #use delay : Osilatör frekansını derleyiciye bildirmek için kullanılır. 3 farklı değer alabilir.

Bunlar;

  1. crystal – Kristal osilatör kullanılacaksa
  2. internal – mikrodenetleyici içerisinde dahili osilatör mevcutsa
  3. oscilator – Harici osilatör kullanılacaksa bu değer verilebilir.

Sözdizimi;

#use delay(osilatorTipi = frekansı)

Örnek Kullanım;

Osilatör frekansı her zaman Hz biriminde yazılır.

5- #use fast_io :  Bu komut derleyiciye hangi portun hangi pinlerinin giriş, hangi pinlerin çıkış olduğunu belirtmek için kullanılır. Eğer bu komut kullanılmış ise main fonksiyonu içerisinde set_tris_x() fonksiyonu ile pinleri giriş yada çıkış olarak yönlendirmemiz gerekmektedir. Eğer bu komutu kullanmaz isek, çalışma sırasında porta giriş komutu yazılmış ise giriş, çıkış komutu yazılmış ise çıkış olarak otomatik yönlendirilir.

Sözdizimi;

#use fast_io(portAdi)

Örnek kullanım;

6-#use fixed_io : Bu komut belirlenen pinlerin program boyunca sürekli çıkış olarak ayarlanmasını sağlar.

Sözdizimi;

#use fixed_io( portAdı_outputs=pin_adı, pin_adi, pin_adi…)

Örnek kullanım;

7- #use adc : Analog dijital çevirme çözünürlülüğünün kaç bit olacağını belirtmek için kullanılır.

Örnek kullanım;

 

8- #fuses : Denetleyici özelliklerini açıp kapatmak için kullanılır. Örnek olarak eğer denetleyicimizde kristal osilator kullanacaksak bunu #fuses komutu ile derleyiciye şöyle bildirebiliriz;

Aşağıda #fuses komutu ile açıp kapatılabilecek özelliklerin bazıları verilmiştir;

  • LP – Düşük frekanslı krisatal
  • XT – Kristal veya Seramik Rezinatör
  • HS – Yüksek hızlı kristal veya seramik rezinatör
  • RC – Direnç- Kondansatör osilatörü
  • WDT – Watch Dog Timer (Bir çeşit resetleme)
  • NOWDT – Watch Dog Timer kullanma
  • PUT – Bir çeşit başlangıç gecikmesi
  • NOPUT – PUT kullanma
  • LVP – Düşük voltajlla programlama

 

Samet Karaca

Hakkımda

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir