RDA Kesmeye girme hatası

Başlatan KONYALI, 11 Temmuz 2018, 15:17:44

KONYALI

Merhaba arkadaşlar;

Bir projemde bilgisayardan parametre almak için seri haberleşme kullanıyorum. Problemim PIC programında başlangıçta RDA kesmesini aktif ediyorum. Benim bildiğim bilgisayardan veriler gelmeye başladığında kesmeye girmesi gerekiyor. Ama ne hikmetse bilgisayar bağlantısı yokken enerji verir vermez kesmeye giriyor ve getc() komutunda kalıyor veri gelmediği için.

Kod Seç
#int_rda                            // RX ucuna veri gelince meydane gelen kesme
void PCBaglanti(){
  
disable_interrupts(int_rda);    // int_rda kesmesini pasif yap
  
Yukleniyor(GelenVeri/4);        // Veri yükleme ilerleme çubuğu animasyonu
  
PCConnect=1;                    // Bilgisayara bağlı                  
  
Veri=getc();                    // Gelen bilgi Veri değişkenine alındı
  
Veri=Veri-48;                    // ASCII HEX dönüşümü yapıldı
  
VeriKontrol();
  
GelenVeri++;                    // Her gelen byte veri için GelenVeri sayacını 1 arttır
  
if(GelenVeri==44){              // GelenVeri sayacı 44 ise veri gönderimi bitmiştir
      
GelenVeri=0;                  // GelenVeri sayacını sıfırla
      
EEPROMKayit=1;                // Gelen verileri EEPROM'a kaydet
      
PCConnect=0;                  // Bilgisayar bağlantısı kesildi
  
}
  
enable_interrupts(int_rda);      // int_rda kesmesini aktif yap
}

Kesme içinde ki kod bu, kesmeyi main fonksiyonu içinde aktif ediyorum. Forumda epey arama yaptım ama benzer bir problem göremedim. RDA kesmesi dışında kesme kullanmıyorum.

fide

Seripırtun rx ucu boşta kaldığı için interrupt rutinine giriyor. Veri gelmediği için de okuma yapamıyor. Bunun için boşta kalınca kilştlenme olma ası için 100k yada 120k direnç ile pull up yap. Seri port kablo bağlı olnadığı zaman rx ucunu lojik 1 seviyede tutar ve kilitlenme ortadan kalkar.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

KONYALI

İşlemci içerisinde Pull Up direnci var mı acaba herhangi bir register ile kontrol edebileceğimiz. Şu an için 100k Pull Up direnci ile problemim çözüldü teşekkür ederim.