16f877a rs232 veri okuyamama

Başlatan hasankomur, 25 Ocak 2013, 09:37:04

hasankomur

Günaydın :)

16f877a rs232 iletişimi üzerinde çalışıyorum. Şöyle ilginç bir sorunla karşı karşıyayım. Pic ten veri gönderebiliyorum fakat pice hiçbir veri alamıyorum. Daha önceden yaptığım uygulamalar şimdi çalışmıyor. Serdar Çiçek'in kitabındaki en basit örnek dahi çalışmıyor. Program şu:
#include <16f877a.h>
#use delay(clock=4000000)
#fuses xt,noput,nowdt,nowrt,noprotect,nocpd,nolvp,nobrownout,nodebug
#define use_portb_lcd_TRUE
#include <lcd.c>
#use rs232(baud=9600,xmit=pin_C6,rcv=pin_C7,parity=N,stop=1)

char klavye[80];

#int_rda
void serihaberlesme_kesmesi()
{
disable_interrupts(int_rda);
output_high(pin_C5);
gets(klavye);
printf("\n\ryazdığınız metin  %s\n",klavye);
printf(lcd_putc,"\f %s",klavye);
output_low(pin_C5);

}
void main()
{

   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_psp(PSP_DISABLED);
   setup_spi(SPI_SS_DISABLED);
   setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
   setup_comparator(NC_NC_NC_NC);
   setup_vref(FALSE);

   output_low(pin_C5);
   lcd_init();
   enable_interrupts(GLOBAL);
   while(1)
   {
   enable_interrupts(int_rda);
   }
}


Max232 entegresini değiştirdim kondansatörleri değiştirdim sonuç aynı.Sizce sorun ne olabilir? Dönüştürücü bozulmuş olabilir mi?

yldzelektronik

gets fonksiyonunda takılı kalıyor.Onu getc ile değiştirin.Dizi halinde veri alacaksanız for döngsü içinde getc ile almayı deneyin
Kişinin başına gelen hayır Allah'tandır. Kişinin başına gelen şer nefsindendir. Nefislerimizle kendimize zulüm ediyoruz.

hasankomur

#2
Alıntı yapılan: yldzelektronik - 25 Ocak 2013, 09:45:18
gets fonksiyonunda takılı kalıyor.Onu getc ile değiştirin.Dizi halinde veri alacaksanız for döngsü içinde getc ile almayı deneyin

Söylediklerinizi uyguladım fakat sonuç alamadım. Kesme ye hiç girmiyor. Bir de yanlışlıkla şunu gözlemledim. Max232 entegresinin toprağını çıkarınca kesmeye giriyor.

mesaj birleştirme:: 25 Ocak 2013, 10:45:15

Sorunu buldum galiba. İki gün önce lcd nin besleme uçlarını ters bağlamıştım. Lcd nin görüntüsünde problem vardı ama çalışıyordu. Ekrana bir şeyler yazdırabiliyordum. Son çare lcd yi bir çıkarayım dedim. Ve çalıştı. Şuan her bilgiyi okuyabiliyorum. Sorunun lcd den kaynaklanacağı aklımın ucundan bile geçmezdi :)