pic16f877 int_rda kesmesi sorunu

HakkanR

Üye
Katılım
27 Nis 2010
Mesajlar
1
Puanları
1
Yaş
40
PHP:
#include <16f877.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, bits=8, stop=1) // RS232 protokolünün 9600 bit/sn baud hızında olacağını ve
#use fast_io(b)                                                                  // TX,RX uçlarının hangi pinler olacağını tanımlıyor
                                                                  // parity bitinin olmadığını, stop bitinin 1 bit olacağı belirtiliyor

//char   x[80];  // klavye isminde 80 üyeli bir dizi tanımlanıyor

#INT_RDA   // RX ucuna veri gelince meydane gelen kesme
void serihaberlesme_kesmesi ()
{

     output_high(pin_b0);
     delay_ms(500);
     output_low(pin_b0);
     delay_ms(500);
     disable_interrupts(INT_RDA);

 
}

void main ()
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş 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ışı
   set_tris_b(0x00);    // RB0 portu tümüyle çıkış olarak ayarlandı.

   output_b(0x00);      // B portu çıkışı sıfırlanıyor
   
   
   enable_interrupts(INT_RDA);
  enable_interrupts(GLOBAL);  
  while(1) {
 enable_interrupts(int_rda); 
  }
}

yazdığım kod bu şekilde EltimeSoft Virtual Serial Port kullanıyorum.
c# ile yazdığım yazılımdan com.writeline('A' + '\r'); gönderiyorum.
ISIS ile simulasyonda Rx ucuna veri geliyor, pic kesmeye giriyor, ancak çıkmıyor Led sürekli yanıp sönüyor.. benim istediğim led yanıp, 0.5 s sonra sonsun, dursun, yeni veri geldiğinde tekrar yansın,sönsün.
yardımcı olursanız sevinirim.
teşekkürler...
 
interrupt registerını inceleyip bakmalısın, hangi tip interruptı kullanacaksan buna göre kendin tanımlamalısın
 

Forum istatistikleri

Konular
129,093
Mesajlar
923,178
Kullanıcılar
451,398
Son üye
ilkercan00

Yeni konular

Geri
Üst