Ders2
#define ; 2 türlü kullanımı vardır
- Programın bu noktadan verilen metin ve üzerinde kimlik basit bir dize değiştirme sağlamak için kullanılır.
Örnek ;
#define LED pin_b1
output_high(LED);
- İkinci formu (C makro) olarak yerel tanımlayıcılar metinde benzer tanımlayıcıları ile eşleştirilir ve kullanıldığı makro geçirilen metin ile değiştirilir.
Örnek ;
#define LED_YAK(pin) output_high(pin)
#define LED_SONDUR(pin) output_low(pin)
while (
1 )
{
LED_YAK(pin_b1);
LED_SONDUR(pin_b0);
}
Basit Bir Buton Uygulaması
input(
pin) ; Pini Okumak İçin Kullanılır Pin durumuna göre 1 veya 0 döner 1 high 0 low
Örnek ;
//------------------------------------------------------------------------------
#include <16F876.h>// Kullanılcak denetleyicinin başlık dosyası tanımlanıyor
#include <stdio.h>
// Denetleyici konfigürasyon ayarları
#FUSES HS //High Speed
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOCPD //No EE protection
#use delay (clock=20000000) // Gecikme fonksiyonu için kullanılan osilatör frekansı
//------------------------------------------------------------------------------
#define LED_YAK(pin) output_high(pin)
#define LED_SONDUR(pin) output_low(pin)
#define LED pin_b1
#define BUTTON pin_b0
//------------------------------------------------------------------------------
void main () {
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // Timer1 devre dışı
setup_timer_2(T2_DISABLED,0,1); // Timer2 devre dışı
setup_adc_ports(NO_ANALOGS); // ANALOG girdi yok
setup_adc(ADC_OFF); // ADC birimi devre dışı
setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı
while(1){
if (input(BUTTON)==1){ // Butona Basılırsa
LED_YAK(LED); // LED Yak
}
}
}
//------------------------------------------------------------------------------