Grafik lcd komut ve hataları

Başlatan Maxim, 11 Ekim 2009, 11:25:52

Maxim

grafik lcd kullanırken karşılaştığım 2 farklı garip hata var ,
bu gariplikleri açıklayabilecek veya belkide çözümümü bilen kimse varmı aramızda ?
grafik lcd dediğim KS0108 tipinde olanlar.

1-

 Declare GLCD_CS_INVERT On

gerçek denemede bu satırı yazmadığım zaman lcd de görüntüde karışıklıklar oluyor, yazılar karışık geliyor.
fakat bu sefer proteusta yazılar karışıyor,

yani proteus için bu satırı silmem gerekiyor ,
gerçek çalışmada kod içerisinde bu satırın olması gerekiyor ,
neden ?


2-

gerçek uygulamada lcd nin R/W ayağını direk şaseye veriyorum ,
ve kod içerisinde "LCD_RWPIN = PORTC.0" gibi bir tanımlama
KULLANMIYORUM .
Problem olmuyor , herşey düzgün çalışıyor ,

fakat !
bu şekil kullanımda proteus ta hatalar alıyorum ,

proteus içerisinde lcd nin bu ayağını kullanmasamda "lcd rwpin tanımını" yazmam gerekiyor. yoksa binlerce hata alıyorum .

hatada şöyle "write unimplemented memory adress ,0xf033 falan filan does nothing ...gibi"

kısacası gene sağlıklı bir proteus çalışması için bu satırıda eklemem şart ,
her ne kadar görüntü gelse bile bu hatalardan dolayı biliyorsunuz program çok fena yavaşlıyor .

teknikelektronikci

diger bir hata dandik grafik lcd ler 20 MHz de calismyior ama 4 Mjz de calisor 20 de sapitiyor malesef halen bi cözümünü bulamadim
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Erhan YILMAZ

karakter lcdler fazla hıza gelemiyor 3-4 mipste çalışan denetleyicilere yetişemiyor maksimum çalışma hızı hd44780nin datahsetinde vardır.proteusta lcd hıza yetişemediğinde simulasyon logda uyarı veriyor.Geçenlerde aynı sorunu yaşadım araya gecikme koyarak sorunu düzelttim

Maxim

2. şıktaki problemi düzeltiyorum ,
R/W ayağı olmadan tuhaf tuhaf sorunlar yaşadım ,
yani onsuz olmuyor.


1. şıktaki problemide şöyle hallettim ,
proteusta, picin CS1 ve CS2 çıkışları ile lcd pinleri arasına inverter kapısı ekledim , haliyle problemde kalmadı .

teknikelektronikci

Alıntı yapılan: "maxiboost"2. şıktaki problemi düzeltiyorum ,
R/W ayağı olmadan tuhaf tuhaf sorunlar yaşadım ,
yani onsuz olmuyor.


1. şıktaki problemide şöyle hallettim ,
proteusta, picin CS1 ve CS2 çıkışları ile lcd pinleri arasına inverter kapısı ekledim , haliyle problemde kalmadı .


hocam inverter eklemenize gerek yok proteusda 2 cesit ks0108 var digerini kullanirsaniz problem cözülür
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Maxim

Alıntı yapılan: "teknikelektronikci"
Alıntı yapılan: "maxiboost"2. şıktaki problemi düzeltiyorum ,
R/W ayağı olmadan tuhaf tuhaf sorunlar yaşadım ,
yani onsuz olmuyor.


1. şıktaki problemide şöyle hallettim ,
proteusta, picin CS1 ve CS2 çıkışları ile lcd pinleri arasına inverter kapısı ekledim , haliyle problemde kalmadı .


hocam inverter eklemenize gerek yok proteusda 2 cesit ks0108 var digerini kullanirsaniz problem cözülür

evet yeni fark ettim öyleymiş ,
o işide hallettik  :)

teknikelektronikci

Alıntı yapılan: "maxiboost"
Alıntı yapılan: "teknikelektronikci"
Alıntı yapılan: "maxiboost"2. şıktaki problemi düzeltiyorum ,
R/W ayağı olmadan tuhaf tuhaf sorunlar yaşadım ,
yani onsuz olmuyor.


1. şıktaki problemide şöyle hallettim ,
proteusta, picin CS1 ve CS2 çıkışları ile lcd pinleri arasına inverter kapısı ekledim , haliyle problemde kalmadı .


hocam inverter eklemenize gerek yok proteusda 2 cesit ks0108 var digerini kullanirsaniz problem cözülür

evet yeni fark ettim öyleymiş ,
o işide hallettik  :)

hocam peki gercek hayattaki 20 Mhz problemini nasil halledecez ? sizdede ayni problem varmi?
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Maxim

20 mhz problemini bilemiyorum .


yeni bir problemi soruyorum ,

ekranın en dışına düz çizgi çekmek istiyorum ,
yatay çizgiler tamam ama dikey olanlarda arada boşluklar oluşuyor ,
proteusta düzgün ,gerçek devrede sorun var ,
sizce neden olabilir ??

grafik lcd 128x64 ks0108

TRISA=%00111111
TRISB=%00000000
TRISC=%00000000
TRISE=%00000000

CMCON =7
ALL_DIGITAL = True


    LCD_DTPORT = PORTB
		LCD_RSPIN = PORTC.2
		LCD_ENPIN = PORTC.3
		LCD_RWPIN = PORTC.1
 	  LCD_CS1PIN = PORTC.4
		LCD_CS2PIN = PORTC.5
 	  LCD_TYPE = GRAPHIC
    INTERNAL_FONT = On
		FONT_ADDR = 0
    Declare GLCD_CS_INVERT On
'---------------------------------------------------------------------------------------- 
Cls

loop:

Line 1,0,0,127,0 ' üst
LineTo 1,127,63 ' sağ
LineTo 1,0,63 ' alt
LineTo 1,0,0 ' sol 

DelayMS 1000
GoTo loop

Include "font.inc"



yani yatay çizgiler böyle tamam
___________

ama dikey olanlar kesik kesik böyle
|
|
|

teknikelektronikci

hocam line komutu yerine lcd write komutunu kullanabilirsiniz
 
 LCDWrite 5, X, [%1111111]
DelayMS 50
   Next X          
   Cls
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

teknikelektronikci

LOADING:
    Print At 4,6,"LOADING"
    Print At 5,2,"%0"
    Print At 5,15,"%100"
     
    
    For X = 25 To 88  
    Select X
    Case <60
    yuzde=yuzde+2
    Case >50
    yuzde=yuzde+1
    EndSelect
    
    LCDWrite 5, X, [%1111111] 
    Print At 6,9,DEC2 yuzde
    DelayMS 50 
    Next X           
    DelayMS 100
    Cls



loading bar eklemek icin .lcdwrite komutunu görebilmeniz icin örnek ollabilir ayrica program baslarinda cok güzel efekt oluyor sag olsun fikir mustafanin
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

Maxim

banane, ben line komutunu kullanmak istiyorum  :)
kullanamayızmı yani ?