rs232 haberleşme sıkıntısı

Başlatan TunaToprak, 26 Mart 2021, 16:10:25

TunaToprak

Merhaba Arkadaşlar,
RS232 ile haberleşen bir cihaza 16f877 entegremden seri data gönderiyorum. Cihazı tek yönlü kontrolde sorun yok ama seri porttan cihazdan geribildirim almak için RTA kesmesi ni aktif ettiğim andan itibaren seri bilgi de gönderemiyorum. Çok nadir ilk komutu alıyor ve ondan sonra şişiyor. Geri bildirim hiç alamıyorum. Cihazın gönderdiği ve aldığı seri kodları Hercules programında test ettim yani cihaz çalışıyor. Sanırım karşıdan gelen bilginin alma yönteminde bir hata yapıyorum ve bu seri portu kitliyor. Birsürü yöntem denedim ama çözemedim. Yardımcı olursanız sevinirim. 



#include <16f877A.h> 
#use delay(clock=20M)
#fuses HS, NOWDT, NOPUT, NOLVP, NOCPD, NOPROTECT, NODEBUG, NOBROWNOUT, NOWRT
#include <string.h>
#include <stdlib.h>


#use rs232 (baud=115200, xmit=pin_c6, rcv=pin_c7, parity=N, stop=1, errors)

char gelenVeri[32];

#ZERO_RAM

#int_rda
void serial_rs232_kesmesi()
{  
   disable_interrupts(int_rda);
   gets(gelenVeri);
   output_high(pin_c0);
   delay_ms(50);
   output_low(pin_c0);
   delay_ms(50);
}
   

void main()
{
     
   setup_psp(PSP_DISABLED) ;
   setup_spi(SPI_SS_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) ;
   
   enable_interrupts(GLOBAL);
   
   while(1)
   {
      enable_interrupts(int_rda);
      if(input(pin_b1))
      {
         printf("SET SW in4 out1\x0D\x0A");  // Bu koda karşılık cihaz "SWin4 out1<CR><LF>" bilgisini geri gönderiyor ama alamıyorum.
         delay_ms(400);
      }
        if(input(pin_b2))
      {
         printf("SET SW in3 out1\x0D\x0A");    // Bu koda karşılık cihaz "SWin3 out1<CR><LF>" bilgisini geri gönderiyor ama alamıyorum.
         delay_ms(400);
      }

   }
}



fatih88

daha önce bende sitring almaya calışmıştım ama sanırsam gets() komutu işlev yapmıyordu bende karakterleri tektek aldığımı hatırlıyorum getc komutu ile tek karakter alıp verebiliyormusun denermisin
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

TunaToprak

Teşekkürler, Bir deneyeyim, haber vereceğim.

Powered by EzPortal