Grafik Lcd float değişken yazdırma

Başlatan Extreme, 17 Nisan 2013, 18:50:47

Extreme

Merhaba,

Grafik lcd de float değişkenleri yazdırmak istiyorum fakat isis programında ekranda sorun çıkıyor.
http://l1304.hizliresim.com/18/k/m5q8p.jpg

Yardımcı olursanız sevinirim.

#include <16f877.h>     // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

#fuses HS,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD // Denetleyici konfigürasyon ayarları

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

#include <HDM64GS12.c> // HDM64GS12.c dosyası programa ekleniyor
#include <graphics.c>  // graphics.c dosyası programa ekleniyor

float x1=18.55;
char bil[5];

/********* ANA PROGRAM FONKSİYONU********/

void main ( )
{
   setup_psp(PSP_DISABLED);        // PSP 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); // Grafik LCD hazırlanıyor ve ekran siliniyor

   while(1)
   {

sprintf(bil,"%.2f",x1);
glcd_init(ON); // Ekran siliniyor
glcd_text57(2,1,bil,1,ON);

delay_ms(1000);
   }
}

Burak B

float x1=18.55;

yerine
float x1=18.55F;


ve
sprintf(bil,"%.2f",x1);

yerine
sprintf(bil,"%3.2f",x1);


yaz.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

Extreme

#2
Malasef aynı  sorun değişmedi hocam.

sadogan

char bil[5];
Bil dizisini 5 byte tanımlamışşın.
Sprintf diziye karekterleri atıktan sonra son byte tan sonra 0 yerleştirir ki
yazılacak karekter sonununu belirtir. x1=18.55 sayısı 5 byte.
char bi[16]; bigi dizi boyunu uzatınca sorun çözülmesi lazıml

Extreme

Alıntı yapılan: sadogan - 17 Nisan 2013, 22:41:42
char bil[5];
Bil dizisini 5 byte tanımlamışşın.
Sprintf diziye karekterleri atıktan sonra son byte tan sonra 0 yerleştirir ki
yazılacak karekter sonununu belirtir. x1=18.55 sayısı 5 byte.
char bi[16]; bigi dizi boyunu uzatınca sorun çözülmesi lazıml

sadogan hocam teşekkürler
çalıştı.

mehmet20

Merhaba Arkadaşlar,

Almış olduğum AGM1264F-NLW-BBH Lcd yi bir türlü süremiyorum Pic olarak 18F452 kullanıyorum, bağlantılarını HDM64GS12 bakarak yaptım, İSİS de çalışan program malesef lcd  çalışmıyor.
Basit bi cizgi cizmeye çalıştığım programım,

Bu arada Lcd bulunan N kodu Negatif transmissive ifade ediyor ???? nedir driver mı değiştirmek gerekir:(


#include <18F452.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000) 
#include <HDM64GS12.C>
#include <GRAPHICS.c>
//================================
void main()
{
while(1){
glcd_init(1);                     
glcd_line(63, 0, 63, 63, 0);
delay_ms(2000);
}
}

Burak B

Negative Transmissive LCD camıyla ilgili bir tabir sürücü ile ilgili bişi değil. Yani sendeki LCD koyu zemin üstüne beyaz pixeller gösteriyor. Sanırım Mavi-Beyaz.
LCD' nin sürücüsü KS0108B.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

mehmet20

evet mavi  beyaz,
peki bu lcd yi nasıl çalıştırırım, KS0108 ile KS0108B nin farkı nedir?