rs232'den veri almak!

Başlatan anafor, 16 Mayıs 2004, 20:15:53

anafor

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.

arif

main()
{
  cenable_interrupts(int_rda);
  cenable_interrupts(global);
  while(1)
  {
     ssssssssssssss;
     ddddddddddddd;
  }
}



#int_rda
receive()
{
  int8 data;
  data=getc();
}

Erkan Gench

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.
Zorluklar, zamanında yapmamız gerekip de yapmadığımız kolay şeylerin birikmesiyle oluşur. Henry Ford ----------- Ya Rabbi Filistin'deki ve dünyanın her tarafındaki Müslüman kardeşlerime yardım et.

hacettepeli_muhendis

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
Dünyada 10 çeşit insan vardır binary saymayı bilenler ve bilmeyenler