Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

RDA Kesmeye girme hatası

Başlatan KONYALI, 11 Temmuz 2018, 12: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.

#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.