/***** Dış Kesme Uygulaması Yazan: Burak TASASIZ *****/
/************************************************
YAZILIMIN İŞLEVİ: A0 bacağına bağlanmış olan bir
led program tarafından 750 ms aralıklarla yanıp
sönecek şekilde sürülüyor. Bu arada B0 dış kesme
bacağına bağlanmış bir button vasıtasıyla programa
müdahale ediliyor ve program dış kesme fonksiyonuna
gönderiliyor.
************************************************/
#include <16f628a.h>
#FUSES NOWDT, INTRC, NOPUT, NOPROTECT, NOBROWNOUT, NOMCLR, NOLVP, NOCPD
#use delay(clock=4000000)
#use fast_io(a)
#use fast_io(b)
int i;
#int_EXT //Kesme fonsiyonunun tanımlanması
void EXT_isr(void)
{
/* Program dış kesme fonksiyonuna girdiğinde
a0 bacağının değeri 5 defa 250 ms aralıklarla
lojik-1 ve lojik-0 olacaktır. */
for(i=0;i<5;++i)
{
output_a(0x01);
delay_ms(250);
output_a(0x00);
delay_ms(250);
}
}
void main()
{
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_comparator(NC_NC_NC_NC);
setup_vref(FALSE);
enable_interrupts(INT_EXT);
enable_interrupts(GLOBAL);
/*Port giriş-çıkış bacaklarının belirlenmesi
ve port temizlemesi yapılması*/
set_tris_a(0x00);
output_a(0x00);
set_tris_b(0x01);
output_b(0x00);
while(1)
{
/* a0 bacağının değeri 750 ms aralıklarla
lojik-1 ve lojik-0 yapılıyor. */
output_a(0x01);
delay_ms(250);
delay_ms(250);
delay_ms(250);
output_a(0x00);
delay_ms(250);
delay_ms(250);
delay_ms(250);
}
}
Hiç yorum yok:
Yorum Gönder