GLCD Yazı Yazdırma Sorunu!!!!

Başlatan salih_arel, 30 Temmuz 2012, 11:35:40

salih_arel

Merhaba arkadaşlar. Devremde bir grafik lcd kullanıyorum ve ekrana yazı yazdırmak istediğimde http://www.4shared.com/photo/UYECZowu/fotoraf__2_.html? http://www.4shared.com/photo/mZJwxWuT/fotoraf__1_.html? resimdeki sorun ile karşılaşıyorum.. Sorun nerde çözemedim. Yardımcı olursanız sevinirim hocalarım.

esensoy

sanki font pixel dataları düzgün değil, ya da glcd ye düzgün gitmiyor, ya da çalışma frekansı yüksek?
En tehlikeli an "zafer" anıdır.

salih_arel

#2
Yani bilmiyorum nasıl halledebilirim. Baskı devre üzerinde deniyorum. Acaba GLCD kütüphanesindemi bir sorun var?? Yada yazdığım kodda. Kodum bu şekilde

   #include <18f452.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use rs232 (baud=9600, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1) // RS232 protokolünün 9600 bit/sn baud hızında olacağını ve
//#define GLCD_WIDTH   128
//#define FAST_GLCD    // Try commenting this out to see the differences
//#include <glcd.c>
#include <HDM64GS12.c>
#include <graphics.c>
char klavye[];
char disp2[20]="Salih";
int i;

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);            // CCP2 birimi devre dışı
   
   glcd_init(on);
   delay_ms(600);
   glcd_text57(40,39, disp2, 2, ON);
   
   while(true)
   {

   printf ("Merhaba :) \r\n\n");
   gets(klavye);
   printf("Yazilan Yazi %s",klavye);
   glcd_fillScreen (0);
   glcd_text57(40,39, klavye, 2, ON);   //glcd yazdır
   output_high(pin_a0);
   delay_ms(500);
   output_low(pin_a0);
   }
}

mesaj birleştirme:: 30 Temmuz 2012, 14:02:51

4 Mhz kristal 22 pf kond kullanıyorum bunlarla ilgili bir problem olabilirmi??

mesaj birleştirme:: 30 Temmuz 2012, 16:54:53

Sorunu çözdüm fakat şöyle bir sorunum var bilgisayardan rs232 ile gönderdiğim veriler her zmn ekranda gözükmüyor. Bunun hakkında bir fikriniz varmı kodu aşşada ekliyorum..

#include <18f452.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.
#use rs232 (baud=19200, xmit=PIN_C6, rcv=PIN_C7, parity=N, stop=1) // RS232 protokolünün 9600 bit/sn baud hızında olacağını ve
#define GLCD_WIDTH   128
//#define FAST_GLCD    // Try commenting this out to see the differences
//#include <glcd.c>
#include <HDM64GS12.c>
#include <graphics.c>
#priority rda
char klavye[10];
char disp[20]="Main Display";
char disp2[20]="Salih Bulut";
int i;

#int_rda
void serihaberlesme_kesmesi()
{
disable_interrupts(int_rda);
output_high(pin_a0);
fgets(klavye);
printf("\n\r Yazdirilan Metin %s\n",klavye);
glcd_fillScreen(0);
glcd_text57(3,30, klavye, 2, on);
delay_ms(500);
output_low(pin_a0);
printf("\n\r Yazdiginiz Metin Ekranda Gorunucektir.. \n");
}
void anaekran()
{
glcd_fillScreen(0);
glcd_text57(25,15, disp, 1, on);
glcd_text57(27,35, disp2, 1, on);
}

void main()
{
   setup_psp(PSP_DISABLED);        // PSP birimi devre dışı
   setup_spi(SPI_SS_DISABLED);     // SPI birimi devre dışı
   setup_timer_1(T1_DISABLED);     // T1 zamanlayıcısı devre dışı
   setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
   setup_adc_ports(NO_ANALOGS);    // ANALOG giriş yok
   setup_adc(ADC_OFF);             // ADC birimi devre dışı
   setup_CCP1(CCP_OFF);            // CCP1 birimi devre dışı
   setup_CCP2(CCP_OFF);
   
   glcd_init(on);
   anaekran();
   printf("\n\r Yazdiginiz Metin Ekranda Gorunucektir.. \n");
   enable_interrupts(GLOBAL);
   while(1)
   {
   enable_interrupts(int_rda);
   }
}

esensoy

nasıl çözdugunu de soylesen aynı problemi yaşayan kişilere yol olurdu
En tehlikeli an "zafer" anıdır.