GLCD ekranda değişim sorunu

Başlatan SAMED, 04 Mart 2019, 15:32:00

SAMED

merhabalar
Daha önce 2x16 ile yapmış olduğum , içinde DS1307 ile tarih saat bilgisini  de gösterdiğim uygulamamı GLCD kullanarak değiştirmek istedim.
Fakat GLCD nin yazı yazmak istediğimiğiz kısmı (on) yapıp sonra yazı yazmasını sağlıyorum saniye bilgisi değişince ekrandan bir önceki rakam silinmediği için üzerine yazıp ekranı karartıyor, önce (on),saat,(off) yapınca ise ekran sürekli dalgalanma oluyor ve ekran okunmuyor.
tecrübeli hocalarımızın yardımlarını bekliyorum :)

void main(){
   setup_adc_ports(AN0);
    glcd_init(ON);
     char yazi[16];
     char yazi_1[20];
     
     
while(true){
     
     ds1307_get_date (day, month, yr, dow); //Tam Tarihi Oku
      ds1307_get_time (hrs, min, sec);   /// Tam Saati oku
       ds1307_get_day_of_week(tarih);
        sprintf(yazi,"%02u:%02u:%02u",hrs,min,sec);
         glcd_text57(20,5,yazi,2,on);
  }
  
}
ADINI HATIRLA...

fatih88

fast lcd komutunu kullanacaksın ama ramdan baya yiyor
#define FAST_GLCD

sprintf(dsaat,"%02u:%02u:%02u",saat,dakika,saniye);
     
     sprintf(dtarih,"%02u/%02u/20%02u",gun,ay,yil);
     
     glcd_text57(20,32,dsaat,2,on);
     
     glcd_text57(0,55,dtarih,1,on);
     
     glcd_text57(70,55,dhgun,1,on);
     
     glcd_line(0,50,127,50,on);
     
     glcd_line(0,25,127,25,on);
     
     delay_ms(1);glcd_update();
     
     glcd_text57(20,32,dsaat,2,off);
     
     glcd_text57(0,55,dtarih,1,off);
     
     glcd_text57(70,55,dhgun,1,off);

örnege bakarak sorununu giderebilirsin
iyi çalışmalar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

SAMED

#2
hocam yanıtınız için teşekkür ederim denedim ama update() fonksiyununda hata veriyor çözemedim :)

 sprintf(dsaat,"%02u:%02u:%02u",saat,dakika,saniye);
     
     sprintf(dtarih,"%02u/%02u/20%02u",gun,ay,yil);
     
     glcd_text57(20,32,dsaat,2,on);
     
     glcd_text57(0,55,dtarih,1,on);
     
     glcd_text57(70,55,dhgun,1,on);
     
     glcd_line(0,50,127,50,on);
     
     glcd_line(0,25,127,25,on);
     
     delay_ms(1);glcd_update();
     
     glcd_text57(20,32,dsaat,2,off);
     
     glcd_text57(0,55,dtarih,1,off);
     
     glcd_text57(70,55,dhgun,1,off);

hata da aşağıda
   
ADINI HATIRLA...

fatih88

#define fast_glcd kısmını nerde tanımladın osc tanımının falan üstündemi glcd kütüphaneleri ve osc bloğunun altına yaz
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

SAMED

#4
kodun tamamı şu şekilde hocam;
#include <SAAT GLCD.h>
#use delay(clock=20000000)
#include <ds1307.c>
#include <HDM64GS12.c> 
#include <graphics.c>  
#define FAST_GLCD
int sec;
int min;
int hrs;
int day;
int month;
int yr;
int dow;
char tarih[4];

void main(){
   setup_adc_ports(AN0);
    glcd_init(ON);
     char yazi[16];
     char yazi_1[20];
     
     
while(true){
     
     ds1307_get_date (day, month, yr, dow); //Tam Tarihi Oku
      ds1307_get_time (hrs, min, sec);   /// Tam Saati oku
       ds1307_get_day_of_week(tarih);
          
          
     sprintf(yazi,"%02u:%02u:%02u",hrs,min,sec);
     
     sprintf(yazi_1,"%02u/%02u/20%02u",day,month,yr);
     
     glcd_text57(20,32,hrs,2,on);
     
     glcd_text57(0,55,tarih,1,on);
     
     glcd_text57(70,55,day,1,on);
     
     glcd_line(0,50,127,50,on);
     
     glcd_line(0,25,127,25,on);
     
     delay_ms(1);glcd_update();
     
     glcd_text57(20,32,hrs,2,off);
     
     glcd_text57(0,55,tarih,1,off);
     
     glcd_text57(70,55,day,1,off);
           
  }
  
}
ADINI HATIRLA...

fatih88

51 satırdaki kodda tanımlama yapılmadı diye birşey yazıyor ccs c glcd kütüphanesini kullanıyorsun değilmi çalışmaması enteresan hali hazırda çalışan kod dan alıp ekledim cep tlf yazıyorum unutmaz isem akşam pc den kontrol edeyim
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

SAMED

evet hocam tekrar kontrol ettim ama düzeltemedim. olur hocam ilginiz için teşekkür ederim
ADINI HATIRLA...

fatih88

#7
#include <18F46k22.h>
#use delay(crystal=20000000)
#define FAST_GLCD
#include <HDM64GS12F.c>
#include <GRAPHICS.c>
#include <ds1307.c>
#use fast_io(a)
#use fast_io(b)
#use fast_io(c)
#use fast_io(d)
#use fast_io(e)

void main()
{
  set_tris_a(0x0c);output_a(0x00);set_tris_b(0x00);output_b(0x00);
  set_tris_c(0x10);output_c(0x00);set_tris_d(0x00);output_d(0x00);
  set_tris_e(0x07);output_e(0x00);
glcd_init(on);
glcd_fillscreen(0);
      while(true)
      {
            sprintf(dsaat,"%02u:%02u:%02u",saat,dakika,saniye);
    
    sprintf(dtarih,"%02u/%02u/20%02u",gun,ay,yil);
    
    glcd_text57(20,32,dsaat,2,on);
    
    glcd_text57(0,55,dtarih,1,on);
    
    glcd_text57(70,55,dhgun,1,on);
    
    glcd_line(0,50,127,50,on);
    
    glcd_line(0,25,127,25,on);
    
    delay_ms(1);glcd_update();
    
    glcd_text57(20,32,dsaat,2,off);
    
    glcd_text57(0,55,dtarih,1,off);
    
    glcd_text57(70,55,dhgun,1,off);
      }
}

Bu çalışan bir kod parçası bende bir problem çıkarmıyor daha olmadı dosyayı yükle bir bakayım
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

SAMED

Evet aslında aynı kod bende anlamadım nedenini
dosyayı yükleyim hocam
ADINI HATIRLA...

fatih88

bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

SAMED

mail atayım isterseniz hocam adresinizi verirseniz
ADINI HATIRLA...

fatih88

kardeş maile baktım zip eror diyor acaba bendemi bir sorun var
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

er-da

arşiv sağlam bende açılıyor winrar ile

fatih88

Bende bir sorun olabilir anlayamadım
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

er-da

yeniden arşivledim  buna bir bak istersen

Powered by EzPortal