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;
Ş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;
1 |
#include <16F877A.h> |
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;
1 |
#define pi = 3.14 |
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;
Sözdizimi;
#use delay(osilatorTipi = frekansı)
Örnek Kullanım;
1 2 3 4 5 6 7 8 |
// Eğer kristal osilatör kullanılacaksa #use delay(crystal=4000000) // 4 MegaHertz'lik kristal kullanılacak demektir // Eğer dahili osilatör kullanılacaksa (16F877A denetleyicisinde mevcut değil #use delay(internal=4000000) // 4 MegaHertz dahili osilatör kullanılacak demektir // Eğer harici osilatör kullanılacak ise #use delay(oscillator=4000000) // 4 MegaHertz harici osilatör kullanılacak demektir |
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;
1 2 3 4 5 6 7 8 |
#use fast_io(b) // B portunu yönlendir void main(){ set_tris_b(0b11110000); // B portunun ilk 4 pinini giriş, son 4 pinini çıkış olarak ayarla while(true){ } } |
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;
1 2 3 |
// B portunun 4, 5, 6, ve 7 nolu pinleri çıkış olarak yönlendirelim #use FIXED_IO(B_outputs=PIN_B4,PIN_B5,PIN_B6,PIN_B7) |
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;
1 2 |
// Örneğin 10 bit çözünürlüğünde analog dijital çevirme işlemi yapacaksak #use ADC = 10 |
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;
1 2 3 4 5 6 7 8 9 |
#FUSES XT /* * Eğer birden fazla ayar yapacaksak * araya virgüller koyarak ayarları yazarız * */ #FUSES XT,NOWDT |
Aşağıda #fuses komutu ile açıp kapatılabilecek özelliklerin bazıları verilmiştir;