Yaptığım uygulamada kod int_rda kesmesine girmiyor.Yardımcı olur musunuz?

Başlatan 17omer17, 03 Haziran 2016, 23:58:02

17omer17

Arkadaşlar  Hc-05 bluetooth modülü yardımıyla pic16f877a kullanarak 3 tane led yakıp söndürmek istiyorum.Devrede yaptığım hataları bulmak için 16x2 LCD kullandım.Devreyi çalıştırdığımda int_rda kesmesine girmedi.Bilgi gelip gelmediğini kontrol etmek için arduino kullandım.Devre arduino ile çalıştı.Pic devresinde herhangi bir hata yok. Hc-05 Tx bacağı Pic'in Rx 'ine bağlı,Hc-05'e telefon ile bağlanabiliyorum. Hatanın kodda olduğunu düşünüyorum.Yardımcı olursanız sevinirim.



#include <16f877a.h>
#fuses NOWDT,XT,NOPUT,NOPROTECT,NOBROWNOUT,NOCPD,,NOLVP,NODEBUG
#use delay(clock=20000000)
#define use_portb_lcd TRUE
#include <lcd.c>


#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,stop=1)

int data;

void serihaberlesme_kesmesi()
{
disable_interrupts(int_rda);
output_high(pin_c5);
data=getc();


printf(lcd_putc,"\f");
printf(lcd_putc,"Gelen veri %d",data);
delay_ms(1000);



if(data=='1')
output_high(pin_a0);
if(data=='2')
output_low(pin_a0);
if(data=='3')
output_high(pin_a1);
if(data=='4')
output_low(pin_a1);
if(data=='5')
output_high(pin_a2);
if(data=='6')
output_low(pin_a2);
delay_ms(100);




}


void main()
{

setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);



set_tris_a(0b00000000);
output_low(pin_c5);
lcd_init();
enable_interrupts(GLOBAL);

while(true)
{
enable_interrupts(int_rda);

lcd_gotoxy(1,1);
printf(lcd_putc,"Veri bekleniyor");
delay_ms(1000);
printf(lcd_putc,"\f");



}



}

nemesis83

yaptığın kesmeye gidebilmen için döngü içerisinden yazdığın kesme fonksiyonuna gidebilmen lazım
sen sadece rs232 kesmesi aktif olsun demişsin
bi de fonksiyon içerisinde delay vermen lazım (bence)
foksiyonun direkt disable interupt ile başlıyor
kesme ile kesme iptal arka arkaya gerçekleşecek