PIC ile Bilgisayar Arasında PL2303 Kullanarak USB-TTL Bağlantı Sorunu

Katılım
1 Eyl 2014
Mesajlar
4
Beğeniler
1
Puanları
1
Yaş
26
#1
Merhaba arkadaşlar. Ben PIC kullanarak basit bir devre yaptım amacım sadece RDA kesmesine gidildiği zaman LED'in yanıp sönmesi ancak tepki alamıyorum. HYPERTERMINAL kullanarak PL2303 üzerinden PIC'in RX ve TX pinlerine bağlandım PL2303 düzgün çalışıyor. PIC de sorun yok. Yazılımda bir sorun olup olmadığını bilmiyorum. Herhangi fikri olan varsa lütfen paylaşsın teşekkürler.

yazılım:
Kod:
#include<16f877.h>

#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NODEBUG,PUT

#USE delay (clock=4000000)


#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1)

#INT_RDA
void RDA(void)
{
output_high(pin_b0);
output_low(pin_b0);


}


void main() {

enable_interrupts(global);
while(1){
enable_interrupts(INT_RDA);
}
}
 
Moderatör tarafında düzenlendi:
Katılım
18 Nis 2014
Mesajlar
930
Beğeniler
170
Puanları
33
#2
Rda kesmesinde bekleme koymalısınız yoksa ledin yanma ve sönme durumunu göremessiniz

void RDA(void)
{
output_high(pin_b0);
Delay_ms(1000);
output_low(pin_b0);
Delay_ms(1000);
}
Kesme icerisinde çok uzun işlem yapmayın. hızlı işlem yaptırıp hemen çıkmalı ki sonraki bilgi gelsin
 
Katılım
1 Eyl 2014
Mesajlar
4
Beğeniler
1
Puanları
1
Yaş
26
#3
Rda kesmesinde bekleme koymalısınız yoksa ledin yanma ve sönme durumunu göremessiniz

void RDA(void)
{
output_high(pin_b0);
Delay_ms(1000);
output_low(pin_b0);
Delay_ms(1000);
}
Kesme icerisinde çok uzun işlem yapmayın. hızlı işlem yaptırıp hemen çıkmalı ki sonraki bilgi gelsin
Cevap için teşekkürler. Dediğinizi denedim ancak aynı sonuç hiç bir tepki yok LED üzerinde. Bu projenin benzeri rs232 ile max232 kullanarak yapılmıştı. Benzer kodları kullandım bende.Acaba yazılımda herhangi bir hata görebildiniz mi?
 
Katılım
18 Nis 2014
Mesajlar
930
Beğeniler
170
Puanları
33
#4
Kodu tekrar inceledim de.
Kesme içerisinde rda yı pasif yap ki başka işe yaramaz bilgi geldinde karışmasın sonra kesmeden çıktında tekrar aktif yaparsın birde belli bişey yap meselâ led_yan diye bilgi gönder bu bilgi geldi ise bunu kesme ye girdiğinde degişkende belirt kesme dışarısında da ledi yak kesme içerisinde işlemleri hızlı ve sade bir şekilde analiz edip hemen çıkmalı ki başka bilgileri alsın ve sürekli geriye dönmesin aktif pasif i iyi ayarlamalısın yoksa kesmede işler karışabilir
 
Katılım
1 Eyl 2014
Mesajlar
4
Beğeniler
1
Puanları
1
Yaş
26
#5
Cevaplarınız için teşekkürler İbrahim bey. Dedikleriniz üzerin Birkaç düzenleme yaptım sistem çalıştı. Bide crystal osilator ile breadboard üzerinde biraz oynamam gerekti sanırım frekans ile ilgili sorun oluyor bazen bilmiyorum. Tekrar teşekkürler kolay gelsin :)
 
Katılım
18 Nis 2014
Mesajlar
930
Beğeniler
170
Puanları
33
#6
Kodun son halini buraya yüklerseniz aynı problem ile karşılaşan arkadaşlar olur ise faydalansın.
Yardımcı olabildim ise ne mutlu bana.
Kullandınız kristal ile programdaki kristal türleri aynımı xt hs gibi ve 22pf kondansatör mü kullandınız
 
Katılım
1 Eyl 2014
Mesajlar
4
Beğeniler
1
Puanları
1
Yaş
26
#7
Tabiki:
Kod:
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000)

#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1)

#INT_RDA
void RDA (void)
{
disable_interrupts(int_rda);
output_high(pin_b0);
 
}

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);
  
   output_low(pin_c5);
  
   enable_interrupts(GLOBAL);

   while(1)
   {
      enable_interrupts(int_rda);
      output_high(pin_c5);
      delay_ms(1000);
      output_low(pin_c5);
      delay_ms(1000);
   }
}
Kesmenin içinde kullandığım
Kod:
disable_interrupts(int_rda);
kodu yapılmak zorundaymış diye okumuştum bir yerde bunla alakası olabilir diye düşündüm. Sonsuz döngüyü yerleştirme sebebim pic'in çalışıp çalışmadığını görmek. Aslında bunu yaparken asıl öğrenmek istediğim RS232 ve MAX232 entegresi ile yapılan buna benzer bir proje vardı. Aynı kodlar PL2303 kullanılınca çalışıyor mu görmekti.
 

Sponsor Bağlantı

Forum istatistikleri

Konular
100,823
Mesajlar
709,074
Kullanıcılar
377,507
Son üye
Memetsdaszxzxz

Yeni Konular

Üst