pic16f628 seri haberleşme sorunu!!

krall_

Üye
Katılım
5 Tem 2012
Mesajlar
12
Puanları
1
Yaş
32
bilgisayardan pice veri yolluyorum led çok kısa bir süre yanıp sönüyor acaba devamlı yanması için ne yapmam gerekli?bu da ccs kodları:
Kod:
#include <16f628.h>   
#use delay(CLOCK=4000000)
#use fast_io(a)
#use fast_io(b)
#fuses XT,NOPUT,NOPROTECT,NOBROWNOUT,NOLVP,NOWDT
#use rs232 (baud=9600, xmit=PIN_B2, RCV=PIN_B1, parity=N, stop=1)
char temp=0;




#INT_RDA
void seri_kesme()
{  disable_interrupts(INT_RDA);
   temp=getc();
}
void main()


{  set_tris_b(0x02);
   set_tris_a(0x00);
   output_b(0x00);
   output_a(0x00);
   enable_interrupts(GLOBAL);
   while(true)
   {  enable_interrupts(int_rda);
      if(temp=='S')
      {
         output_bit(PIN_A3,1);
         output_bit(PIN_A2,0);
         output_bit(PIN_A1,0);
         output_bit(PIN_A0,0);
      }
               
      if(temp=='A')
      {
         output_bit(PIN_A2,1);
         output_bit(PIN_A3,0);
         output_bit(PIN_A1,0);
         output_bit(PIN_A0,0);
      }
       
      if(temp=='E')
      {
         output_bit(PIN_A1,1);
         output_bit(PIN_A2,0);
         output_bit(PIN_A3,0);
         output_bit(PIN_A0,0);
      }
   
      if(temp=='D')
      {
         output_bit(PIN_A0,1);
         output_bit(PIN_A2,0);
         output_bit(PIN_A1,0);
         output_bit(PIN_A3,0);
      }
   }
}
 
tam olarak ne yapmam gerekiyor anlayamadım?
 
Merhaba

internette Seri iletişim ile ilgili birçok bilgi olmasına rağmen bunların hepsi pazılın parçaları gibi dağınık vaziyettedir. Öğrenci arkadaşlarda bu dağınık bilgileri bir araya getirip konuyu kavramakta zorlanmaktadırlar. Aynı sıkıntıları bir amatör olarak ben de yaşadığım için elde ettiğim bu bilgiler paylaşmak istedim. PIC olarak piyasada çok ucuza bulunan popüler olan 16F628A’yı seçtim. Bu PIC ile uygulamalar da yaptığım için daha kolay anlatabileceğimi düşündüm. PIC yazılımı için asm dilini kullanmaktayım.
Diğer PIC’ler ile çalışacak arkadaşlar yapılandırma ayarlarını değiştirerek diğer PIC’leri de kullanabilirler Öncelikle seri iletişimde dikkat edilmesi gerekenler:

1-PC tarafından PIC'e gidecek verilerin hızları PC tarafındaki yazılımın da veri alım hızına (baud rate hızları)eşit olmalıdır.
2-TXSTA ve RXSTA yapılanmaları doğru yapılmalı
3-XTAL seçimi(4mhz,8mhz,10mhz.....vs)baud rate hesaplarını etkiler bu bakımdan seçilen kristal hızına göre yapılandırma yapılmalıdır.

Bu konu ile geniş bilgileri Sayın “Orhan Altınbaşak” microdenetleyiciler ve PIC programlama
16F628A adlı kitapta bulabilirsiniz.
 
cevabınız için çok teşekkür ederim örneğin bilgisayarda E tuşına bastığımda pin a1 deki led yanıyor.ama çok kısa bir süre ben bunun sürekli yanmasını istiyorum acaba komutlarda mı bir sıkıntı var?
 
Merhaba
Programlama dilinizi bilmediğim için programın neresine müdahale edilecek bilemiyorum.
 
Çalıştırdığınız komutlar bu en üstteki mi? C dilinde pratiğim yok ama komutların sıralamasında bi hata göremedim.. Devre üzerinde deniyorsanız pic in resetlenip resetlenmediğini inceleyin isterseniz.. MCLR boşta ise onu da dirençle + ya bağlarsanız iyi olur..

disable_interrupts(int_rda); ve enable_interrupts(int_rda);
komutlarının neden kullanıldığını anlamadım ben şahsen.. Asm de zaten kesme olduğunda, kesme rutini boyunca interruptlar kapatılır.. C de de öyle olmalı sanırım.. Neyse bu sorun olamaz.. Aklıma takıldı sadece..
 

Forum istatistikleri

Konular
128,254
Mesajlar
916,251
Kullanıcılar
450,075
Son üye
oodak

Yeni konular

Geri
Üst