Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

Seri İletişim.

Başlatan xoom, 13 Kasım 2016, 17:41:48

xoom

#include <testtt.h>

#INT_RDA
void  RDA_isr(void) 
{   
      char tmp;
      
      tmp=getc();
      
      if(tmp=='a')flag=2;
      if(tmp=='k')flag=1;
     
     enable_interrupts(INT_RDA);
}

void main()
{
   set_tris_d(0x00);
   output_d(0x00);
   
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   
 
    
   while(TRUE)
   {
         
     if(flag==1)
     {
     output_low(pin_d6);
      printf("KAPATILDI...\n\r");
      
      putc('K');putc('K');putc('K');
      
     flag=0;
     }
     if(flag==2)
     {
     output_high(pin_d6);
     printf("AÇILDI...\n\r");
     putc('A');putc('A');putc('A');
     flag=0;
     }
     
        
     
   }

}

Arkadaşlar Yukarıdaki Kodları çalıştırdığımda Sanal terminal programından a ve k harfleri gönderdiğimde D6 pinindeki ledi yakıp söndürebiliyorum. Fakat sanal terminal programının recive bölümünde printf ile gönderdiğim veriler gelmiyor..
Şimdi iletişim problemim olsa terminalden gönderdiğim a ve k harfleri ile ledide kontrol edememem gerekmiyor mu?
Neden Terminal Programına Printf veya Putc ile gönderdiğim veriler gelmiyor olabilir? Sanki pic gönderdiklerimi aliyor fakat picin bana gönderdikleri gelmiyor gibi anlıyorum.

Terminal Program Ekran Görüntüsü.


Recive Bölümüne gelen giden yok.

JOKERAS

Bu sanal Pgm'ın üzerinde FxDev ustanın Sembolü var.
Muhtemelen o yazmış bu pgm'ı.

Acaba ayarlarında Tx to Rx  yada Rx to Tx diye bir seçenek olupta o aktif edilmemiş olabilirmi?
Eko yapma özelliğinden bahsediyorum.

xoom

Alıntı yapılan: JOKERAS - 13 Kasım 2016, 21:08:36
Bu sanal Pgm'ın üzerinde FxDev ustanın Sembolü var.
Muhtemelen o yazmış bu pgm'ı.

Acaba ayarlarında Tx to Rx  yada Rx to Tx diye bir seçenek olupta o aktif edilmemiş olabilirmi?
Eko yapma özelliğinden bahsediyorum.

Bilmiyorum halen boğuşuyorum ne yaptıysam PIC ile Terminale gönderdiklerimi göremiyorum. Başka Terminal Programıda denedim onada gelen birşey olmadı. Sanırım bir yerlerde hata yapıyorum. a  ve k harfleri gönderdiğimde Led on/off oluyor.. demekki pic receive yapıyor. ama pic'in transmit ettikleri terminale düşmüyor.

JOKERAS

Dockligth diye Google Amcaya yazın ve indirin,o pgm'da o dediğim özellik var.
Belki bunda da vardır da biz bilmiyoruz.FxDev ustaya sormak lazım.

xoom

Alıntı yapılan: JOKERAS - 13 Kasım 2016, 21:38:37
Dockligth diye Google Amcaya yazın ve indirin,o pgm'da o dediğim özellik var.
Belki bunda da vardır da biz bilmiyoruz.FxDev ustaya sormak lazım.
Bahsettiğiniz özellik benim ne işime yarayacak anlayamadım.

Z80

#use rs232(baud=9600, xmit=PIN_B2,   rcv=PIN_B1,   ERRORS)
CCS C 'de seri portu kullanman için böyle bir tanımlama yapman gerekir.
Ayrıca Tris ayarlarında da RX pinin "1" yani input yapmalısın.
İnterruptdan çıkarken tekrar enable yapmana gerek yok, zaten enable...
Receive buffer okunduğunda interrupt flag sıfırlanır zaten.

kudretuzuner

Merhaba,
Dataları usb'sen alışveriş yapıyorsanız hangi çeviriciyi kullanıyorsunuz?
Amatör

xoom

#7
Alıntı yapılan: kudretuzuner - 13 Kasım 2016, 22:01:43
Merhaba,
Dataları usb'sen alışveriş yapıyorsanız hangi çeviriciyi kullanıyorsunuz?

Prolific HL-2303 kullanıyorum.

kudretuzuner

#8
Alıntı yapılan: xoom - 13 Kasım 2016, 22:04:17
Prolific HL-2303 kullanıyorum.
Merhaba,
profiliklerde ben çok sıkıntı çektim.Digitus kullanıyorum(FT232)sorun yok.
https://www.google.com.tr/#q=digitus+usb+rs232

https://www.google.com.tr/#q=profilik+usb+converter

Ayrıca basit bir terminal programını kendiniz yazarsanız daha iyi sonuç alırsınız.
Amatör

xoom

Alıntı yapılan: kudretuzuner - 13 Kasım 2016, 22:08:58
Merhaba,
profiliklerde ben çok sıkıntı çektim.Digitus kullanıyorum(FT232)sorun yok.
https://www.google.com.tr/#q=digitus+usb+rs232

https://www.google.com.tr/#q=profilik+usb+converter

Ayrıca basit bir terminal programını kendiniz yazarsanız daha iyi sonuç alırsınız.
Peki @FxDev hocanın yazdığı program üzerinden seri porta a ve k harflerini gönderdiğimde ilgili ledi yakıp söndürüyor olabilmem kablonun sağlam olduğunu göstermez mi? ben sırf bu yüzden problemin başka yerde olduğunu araştırıyorum.
en basitinden printf("Merhaba"); yazdığımda bunu Terminalde Receive bölümünde görmem gerekmiyor mu?

Z80

Tera term diye bir terminal programı var. Onu bir dene.

kudretuzuner

Merhaba,
Seri iletişim çok kolay bir çalışma olmakla birlikte puzzle gibi düşünün.Taşları doğru yere koyarsanız çalışır aksi olursa doğrular çalışır eksik veya yanlış olan çalışmaz.CCS C bilmediğim için kodlarınız hakkında birşey yazamayacağım.PC'den PIC'e data yolladıktan sonra PIC'ten data istemeden pıc'e fiziksel reset atın,


Amatör

xoom

Arkadaşlar yaptığım ölçümlerde..
TX ve RX pinlerinde Sabit 4.2V okuyorum.. Bunun böylemi olması gerekiyor bilemiyorum o yüzden buraya yazıyorum. 
Böyle olmasına Rağmen Yukaridaki kodları yüklediğimde a ve k harflerini terminalden gönderdiğimde Led on/off oluyor..
ama Printf ile bastığım metinleri terminalde göremiyorum.
Sorunum büyük ihtimal basit ama çözümünü bulamamak beni biraz çileden çıkarmak üzere.

aliveli

testtt.h içinde ne var

Salih

Osiloskopunuz varsa en iyisi PIC'in Tx ucundan itibaren sinyal takip etmektir.
Önce Tx ucu, orada varsa seri dönüştürücünün Tx ucu.
İki uçda da seri sinyal görülüyorsa. Donanım değil PC veya terminal programında
problem var demektir.