#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 yoksetup_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ırsaLED_YAK(LED); // LED Yak}}}//------------------------------------------------------------------------------
0 yorum:
Yorum Gönder