STM32F107 ile GLCD kullanımı Kütüphane sorunu

Başlatan Mucit23, 23 Ekim 2012, 12:04:52

muhittin_kaplan

sitring katarın lcd üzerindedeki adresi kayıyor bence. ama buna nasıl ulaşılır bilemiyorum.

Burak B

#61
Sorun kontrolcüyü nasıl kullanacağını bilmemenden kaynaklanıyor. Bu tip fonksiyonlarda LCD kontrolcüsünde bir pencere tanımlanır ve o pencere içerisinde çizim yapılır. Eğer pencere sınırları dışına taşarsan çizim üzerine bindirme yapmaya başlar. Buda bu çizimi yapan fonksiyonun tarama yönüne doğru bir kaymaya sebebiyet verir. Yani kod iki haneli karakterleri basmaya başladığında CGRAM bölgesinde kontrolcüden kaynaklanan bir kayma meydana geliyor. Ayrıca bu kontrolcülerin bazılarında HW kaydırma özelliğide bulunur. Senin yapman gereken pencereyi genişletmek.

  x = WIDTH-x-CHAR_W;
  wr_reg(0x50, y);                      /* Horizontal GRAM Start Address      */
  wr_reg(0x51, y+CHAR_H-1);             /* Horizontal GRAM End   Address (-1) */
  wr_reg(0x52, x);                      /* Vertical   GRAM Start Address      */
  wr_reg(0x53, x+CHAR_W-1);             /* Vertical   GRAM End   Address (-1) */


Bu kodlar pencere tanımlayan komutlar.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

Mucit23

Hocam Pencere işini anladım. Bahsettiğiniz bölümde biraz oynamlar yaptım. Örneğin açılan pencerede 2 şer pixellik  genişletmeler yaptım. Ama sonuç dahada kötü oldu. Yaptığım değişiklerde ya kayma hızı arttı, yada yazı yamulmaya, değişik fontlar almaya başladı.  Anlaşılan bilinçsiz yapılan müdahale pek işe yaramıyor.  Başka ne yapabilirim bu konuda

Burak B

Kendi karakter basma fonksiyonunu yazmayı dene. Benzer kodları incele. Yani bu adamların yazdığı koda güven etme demek istiyorum. Debug ederek karakter basan fonksiyonu incelemende fayda var. Hatayı kendin bulursan senin için daha öğretici olacaktır. Mesela örnek vereyim şimdi tek karakter kaymıyor. Ama iki karakter kayma yapıyor. Bunun nedenini bulmaya çalış. Kayma başlayınca putpixel fonskiyonuna hangi değerler gönderiliyor ve bu sırada pencere ebatları ne bunları debug ederek araştır. Ayrıca kontrolcünün datasheetini iyi incele ve komut takımının ne iş yaptığını anlamaya çalış. en azından CGRAM ile ilgili olanların.
"... a healthy dose of paranoia leads to better systems." Jack Ganssle

yamak

GLCD_DisplayString(4,10,ekran);
komutundan önce "GLCD_DisplayString(4,10,"      ");" yazmayı dener misin?

Mucit23

Alıntı yapılan: yamak - 28 Kasım 2012, 10:49:25
GLCD_DisplayString(4,10,ekran);
komutundan önce "GLCD_DisplayString(4,10,"      ");" yazmayı dener misin?

Hocam bunu yapınca anladığım kadarıyla her bir yazışımda yazmadan önce ekrana 6 karakter başluk çizdiği için daha hızlı kaymaya başlıyor. Sonuç aşağıdaki gibi.
LCD kütüphane problemi-2

Şunu merak ediyorum.. Neden ben kütüphaneyle hiç oynamadan TFT kütüphanesini başka bir programa taşıdığımda bu problemler oluyor. Sıfırdan TFT için Kütüphane yazmak gerçekten zor benim için Heleki Daha C öğrenme aşamasında olan birisi için.

Belki Keil yanında gelen örnek program ile benmi yazdığım kodlar arasında ne fark var bunu bulursam sorun çözülecek. Bu benim çok aklımı karıştırıyor.
Benim çalıştığım dosyalar bunlar
https://hotfile.com/dl/181392155/d8ed0c4/Keil_Board.rar.html
Buda Keil'in örnek programı
https://hotfile.com/dl/181392335/3527c41/LCD_Blinky.rar.html
Keil örnek programı bayağı büyük. Dokunmaktik panel kontrolü, Resim Basma gibi birçok fonksiyon kontrol ediliyor.

İncelerseniz sevinirim gerçekten

yamak

Hocam ekran adındaki dizinin eleman sayısı belirtmemişsin. Eleman sayısını mesela 5 olacak şekilde tanımlamayı dener misin?
şu şekilde olabilir "unsigned char ekran[5];"

Mucit23

#67
Hocam Denedim Değişen birşey olmuyor. Durum aynı.
Şuan SPDF5408 in Datasheetini inceliyorum. Yukarı doğru kaymasına pek anlam veremiyorum açıkçası, ByteMaster açıklamış ama diyelim açtığımız pencereye yazdığımız yazı sığmazsa neden yukarı kaydırsın ki, Sığdığı kadarını yazması gerekir diye düşünüyorum. Yazılacak bölgeyi genişlet sem işler dahada berbat oluyor.

mesaj birleştirme:: 28 Kasım 2012, 22:42:46

Arkadaşlar Bu Grafik LCD kütüphanesi hakkatten düzgün çalışmıyor. Özellikle String Basma kısmı.
Bugün başka testler daha yaptım. Aslında ben kendi editlediğim kütüphaneden vazgeçmiştim. Denemediğim yol yordam kalmadı çünkü.
Yine Keil ile birlikte gelen örnek Grafik LCd kütüphanesini Değiştirmeden yine benim programa taşıdığımda ilk gördüğümden daha az problem çıktı. Şöyle;
İlk başta bu dediklerimi yaptığımda hem yazılar ayna görünümü çıkıyordu hem yazıların sırası ters ve yazılar yukarı doğru hareket ediyordu. Ben yazıların ters görünmemesi için kodlara müdahalede bulunup düzeltmiştim. Ama bugün yine orjinal kütüphaneyi derlediğimde ilk iki problem yaşanmadı ama yine rakamlar yukarı doğru kayıyordu.

Keilin kütüphanesindede dikkatimi çekti. LCD ye yazı yazdırılırken hep ekrandaki sütün sayısı doldurularak yazılıyordu. Örn;       GLCD_DisplayString(1, 0, "   MCBSTM32C Demo    ");  Yani lcd deki tüm sütünlar doldurularak yazılıyordu. Ben bu kodun aynısı yazdırdığımda Ekranda yazı sabit bir şekilde durdu. Değişken yazdırdığımda ise yine problem çıkardı.

Bu işlemlerin aynısı keil il birlikte example programda yapsam onda buna benzer problemler hiç olmadı.  Yani String boyutu ekran kayması yapmıyordu.

Kütüphanenin problemli çalıştığı kesin. Özellikle Kütüphanenin String yazma kısmını kusursuzlaştırmaya çalışacağım. Özellikle String yazma kısmını komple baştan yazmak istiyorum. Mesela LCD de Font Büyüklüğünü belirten bir fonksiyon yok buda olsa çokgüzel olacak.

LCD nin nasıl çalıştığını anlamakla işi başlayalım.   

muhittin_kaplan

coocox da aşağıdaki uyarıyı alıyorum

warning: implicit declaration of function 'GLCD_Bitmap' [-Wimplicit-function-declaration]

gizli tanımlı bir fonksiyoundan bahsediyor.

Mucit23

Muhittin abi .h dosyasında gösterdinmi fonksiyonu. Aynı kütüphaneyi kullanıyorsun herhalde

Ben biraktim artık bu tft ile oynamayı. Üzerinde Ssd1963 olan 4.3" bir tft aldım. Gelmesini bekliyorum. Gelince çalışmalara devam edeceğim.

muhittin_kaplan

mucit bende tft var. ama şu GLCD ile bir iş yapıyorum. her derlememde bu Uyarıyı veriyor. yaptım onuda yaptım, prototipi yazdım ks....h dosyasına aynı oldu.

muhittin_kaplan


Mucit23

Abi fontu değiştiremiyorum sadece yazı büyüklüğüyle oynayabiliyorum.

Ben TFT ile uğraştığını sanmıştım. Sanırım GLCD ile uğraşıyorsun

muhittin_kaplan

Evet GLCD ile uğraşıyorum, Font büyüklüğünü nasıl değiştirdin ?

Mucit23

Hocam ks0108_text fonksiyonunu zaten bu parametreyi istiyor.

ks0108_text(x,y,"Mucit23",size,color);

X ve Y parametreleri kordinatlar,
Size= Yazı büyüklüğü
Color= Yazı rengi