18f46k22 glcd uart sorunu

Başlatan 10f200.h, 13 Ekim 2019, 23:48:18

10f200.h

merhaba arkadaşlar.
18f46k22 kullanarak uart üzerinden gelen verileri 128x64 grafik lcd de göstermek istiyorum. uart ı başlatmak için
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,stop=1,parity=N) yazdığım zaman ekran beyaz oluyor. uart pinlerini değiştirip örnek olarak pin_a6, pin_a7 yaptığım zaman ekran normal çalışıyor ama bu pinler de benim işime yaramıyor.Ayrıca lcd nin Enable,DI,Reset,CS1,CS2 gibi pinleri de c0-c5 arasına bağlı.
kod şu şekilde

#include <glcd_2.h>
#include <18F46K22.h>
#device ADC=10
#use delay(internal=16MHz)
#use rs232(baud=9600,xmit=pin_C6,rcv=pin_C7,stop=1,parity=N)
 #Fuses INTRC_IO
 #Fuses NOPLLEN,NOFCMEN
 #Fuses NOIESO,NOPUT,NOBROWNOUT
 #Fuses NOWDT
 #Fuses NOPBADEN
 #Fuses NOHFOFST,MCLR
 #Fuses NOSTVREN,NOLVP,NOXINST,NODEBUG
 #Fuses NOPROTECT,NOCPB,NOCPD,NOWRT,NOWRTC
 #Fuses NOWRTB,NOWRTD,NOEBTR,NOEBTRB                //No Watch Dog Timer
#define FAST_GLCD   
#define GLCD_CS1     PIN_C2
#define GLCD_CS2     PIN_C3 
#define GLCD_DI      PIN_C4
#define GLCD_RW      PIN_C0
#define GLCD_E       PIN_C5
#define GLCD_RST     PIN_C1
#include <HDM64GS12.c>
#include <graphics.c>
   
char data[128];
char baud_val1[]="2400",stop_val1[]="0";
char none[]="N";
//==========================rs232 rda interrupts============================
#INT_RDA
void rda_isr()
{
gets(data);

}

void terminal()
{
glcd_rect(0,0,126,63,YES,OFF);


glcd_text57(1,1,baud,1,ON);
glcd_text57(31,1,baud_val1,1,ON);

glcd_text57(75,1,stop,1,ON);
glcd_text57(86,1,stop_val1,1,ON);

glcd_text57(101,1,parity,1,ON);
glcd_text57(116,1,none,1,ON);
glcd_text57(10,10,data,1,ON);

}

//===========================MAİN=====================================
void main() {
   
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);  
   glcd_init(ON);                          

  
   while(TRUE) 
   {
 
   terminal();
  
      #ifdef FAST_GLCD
      glcd_update();
      #else
      delay_ms(100);    
                        
      #endif
   }
}

yardımlarınızı beklerim. iyi çalışmalar.

zamzam23

"glcd_2.h"
bu dosyayı da paylaşmanız lazım.

10f200.h

hocam o dosyada denetleyici adi adc ve sigorta ayarlari vardi. ben de onları bu dosya icine aldim.

bayelektronik

Sorun rda kesmesi. Kesme içerisinde gets değil getc kullanın ve onuda bir değişkene eşitleyin a=getc(); gibi.

10f200.h

teşekkür ederim hocam cevabınız için. dediğiniz gibi yapınca oldu.