Picproje Elektronik Sitesi

DERLEYİCİLER => PIC C => Konuyu başlatan: anafor - 16 Mayıs 2004, 20:15:53

Başlık: rs232'den veri almak!
Gönderen: anafor - 16 Mayıs 2004, 20:15:53
CCS de rs232'den veri almak istiyorum fakat kullandığım iki farklı yöntemle de bunu başaramadım. Önce receive interrupt kullandım. Fakat olmadı Kbhit() ilede bunu alamadım.
rs232 de baud rate ayarınıda düzgün yaptım;
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7)

gelen veriyi alma kısmı ise şu ;

                                   if (kbhit())
      {
         a=getc();
         i++;
         printf(lcd_putc,"%c",a);
      }
      if(FERR);   
      {
        CREN=0;
        CREN=1;
        gecici=rcreg;
   }
      if(OERR)
        {
         CREN=0;
         CREN=1;
        
         }
cren ferr ve oerr tanımlamalarını daha önceden (programın başında) tanımlamıştım. Yardım edebilirseniz sevinirim. Teşekkürler.
Başlık: rs232'den veri almak!
Gönderen: arif - 17 Mayıs 2004, 21:58:09
main()
{
  cenable_interrupts(int_rda);
  cenable_interrupts(global);
  while(1)
  {
     ssssssssssssss;
     ddddddddddddd;
  }
}



#int_rda
receive()
{
  int8 data;
  data=getc();
}
Başlık: Re: rs232'den veri almak!
Gönderen: Erkan Gench - 18 Mayıs 2004, 20:05:16
Alıntı yapılan: "anafor"
                  if (kbhit())
      {
         a=getc();
         i++;
         printf(lcd_putc,"%c",a);
      }

yukarıdaki kodda önce a ye gelen veriyi aktarmışsınız fakat gösterirken i yi bir arttırmışsınız böylelikle gelen veriyi değil bellekte bi sonraki adreste bulunan veriyi göstermişsiniz.
Başlık: rs232'den veri almak!
Gönderen: hacettepeli_muhendis - 16 Temmuz 2004, 21:21:08
direk almayı denemiyorsundur umarım RS232 (9V,-9V)(0,1) den TTL (5V,0V) (1,0) voltaj seviyesine düşürmen gerekli ayrıca RS232 de negatif logic kullanılıyor bunun için sanırım MAX232  diye bir entegre var ama emin değilim