Picproje Elektronik Sitesi

DERLEYİCİLER => Proton+ => Konuyu başlatan: Mucit23 - 03 Haziran 2011, 07:10:21

Başlık: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 03 Haziran 2011, 07:10:21
Arkadaşlar 12x64 grafik lcd de menü için ekranda butonlar yapaya çalışıyorum. Sizlerin fikirlerine ihtiyacım var.  Yapmak istediğim şeyin çalışması kısaca şöyle olmalı. Menüdeyken ekranın çeşitli yerlerine yerleştirdiğimiz dikdörgen şeklindeki butonlar olsun. Bu botonların içinde butonun görevini yazıracağım. Yön tuşları ile hangi butonu seçtiysem eğer butonun seçildiğini anlamak için içindeki yazı invert olabilir. Çokmu şey istedim bilmiyorum ama aklımdakileri ancak anlatabildim. :)
Protonda çalışıyorum. Aslında tamda yapmak istediğime benzer internette bir uygulama var.
Aynı aşağıdaki resimdeki gibi olacak
(http://s2.postimg.cc/23w65e7l0/resim22.jpg) (http://postimg.cc/image/23w65e7l0/)
Tek fark bu kadar büyük olmaması lazım. Bu konuda sizlerin fikir önerilerinize ve algoritma desteğinize ihitiyacım var.
Sağa, Sola, Yukarı, Aşağı ve Ok olmak üzere ayar butonlarım var.

Birde arkadaşlar proton komutlarını ve ne işe yaradığını yazan bir kaynak arıyorum. Protonda ne işe yaradığını bilmediğim birsürü komut var. Mesela birtanesi CIRCLE komutu. Bu komut ne işe yarıyor. Protonun help menüsünden baktım anladığım kadarıyla ekranda daire, çember oluşturmak için kullanılıyor. Ama ayrıntılarını bilmiyorum. Nasıl kullanılır. Üzerindeki parametreler ne işe yarar Bunun gibi bilgilere ihtiyacım var
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: M_B - 03 Haziran 2011, 08:51:07
merhaba hocam;
Ekranda ki menuyu gorunce aklıma bankamatıklerdeki menu sistemı geldi.
Ekranın sagında ve solunda tuslar oluyor ( dokunmatık olmayan tip )
Hocam sizin bu uygulamada da olabilir kanısındayım.

Kolay gelsin.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 03 Haziran 2011, 10:01:19
Aslında benim yapmak istediğim daha küçük çaplı. Ekranın en altında sadece iki adet buton olacak. Ben sadece nasıl oluşturabileceğimi hangi mantıkla gitmem gerektiğini bilmiyorum. Yani diyelim ekrandaki verileri görüntüyü bozmadan bunu nasıl yapmam gerekiyor. Dediğim gibi biraz algoritma desteğine ihtiyacım var
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: M_B - 03 Haziran 2011, 12:28:46
Merhaba Hocam biraz bildiğim kadarıyla anlatmaya calışayım.

Oncelikle bir tane menuNo diye bir değişken olacak ve degeri ilk basta default olarak 1 olsun diyelim.
sonra tusa bastıkca degeri değisecek ve ilgili menuye gelecek.
burda ben 3 buton kullandım
ileri geri ve OK butunu ( onaylamak ıcın )

Umarım anlatabilmişimdir.


 

menuNo=1;

if(ileri==1)
    {
    menuNo++; // menuno su bir artırıldı. )   
    if(menuNo==5)menuNo=0;
    if(menuNo==2) { Print "alarm"  invertli yazısı ; }  Protonda nasıl ekrana yazı yazılır bılmedıgım ıcın bu sekılde yazdım ornek olması acısından
    if(menuNo==3) { Print "tarih"  invertli yazısı; }
    if(menuNo==4) { Print "ayar"  invertli yazısı; }
    while(ileri);
    }

if(geri==1)
    {
    menuNo--; // menuno su bir azalt   
    if(menuNo==0)menuNo=1;
    if(menuNo==2) { Print "alarm"  invertli yazısı ; }  Protonda nasıl ekrana yazı yazılır bılmedıgım ıcın bu sekılde yazdım ornek olması acısından
    if(menuNo==3) { Print "tarih"  invertli yazısı; }
    if(menuNo==4) { Print "ayar"  invertli yazısı; }
    while(geri);
    }

if(OK==1)
{
if(MenuNo==1)  // Saat ayarlama
{
Saat();
}
if(MenuNo==2)  // alarm ayarlama
{
alarm();
}
if(MenuNo==3)  // ayar fonksiyonu
{
ayar();
}
} // OK tus sonu

Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 03 Haziran 2011, 13:14:41
Hocam Teşekkür ederim.
Daha önce Pic basicde çok çeşitli menüler yapmıştım. Fakat hepsinde karakter lcd kullanmıştım. Bu sefer GLCD kullanınca işler biraz farklılaştı. Menüler arası geçiş yaparken Aynende sizin dediğiniz gibi olması lazım. Bir tane değişkenimiz olacak. Menüler arası geçiş yapmak için değişken değeriyle oynayacağım(daha öncede hep böylede yapıyordum.) Sonra Değişkenin değerine bakarak ilgili değere eş olan menü görüntüsünü ekrana basıcağız. Teoride böyle olması gerek. Şimdi benim aklıma takıla durum ise şudur. Aklınıza yatması için şöyle bir örnek vereyim.(aslında yapmaya çalıştığım şeyde tam anlamıyla budur. ) Bir saat ayarlama menüsü olsun LCD de aşağıdakine benzer bir görüntü olsun

            ZAMAN AYARI

SAAT: 00:00:00
TARİH: GG/AA/YY
GÜN: PAZARTESİ(SALI, ÇARŞAMBA, PERŞEMBE....)

KAYDET         İPTAL

Ekran görüntüsünün bu şekilde olduğunu düşünün. Ekranda zaman ayarı yapılıyor. Diyelim saat ayarını seçtik. Anlaşılması için saat ayarı yapılırken ekranda saat bilgisinin terslenmiş durumda çıkmasını istiyorum. Aynı şekilde dakika,gün,ay,yıl içinde geçerli olacak. Seçilen ayar hangisindeyse o terslenmiş halde çıkacak.
En sonda kaydet veya iptale gelinirse yine aynı şekilde olması lazım. Yazılar teslenmiş halde çıkması lazım. Bunu protonda nasıl yapabileceğimi öğrenmeye çalışıyorum.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: vitruvius - 03 Haziran 2011, 15:01:30
Böleceğim ama bilmediğim bir kullanım gördüm. Ben C kullanıyorum, şuradaki while(ileri) komudunun işlevi ne acaba? Teşekkürler.

if(ileri==1)
    {
    menuNo++; // menuno su bir artırıldı. )   
    if(menuNo==5)menuNo=0;
    if(menuNo==2) { Print "alarm"  invertli yazısı ; }  Protonda nasıl ekrana yazı yazılır bılmedıgım ıcın bu sekılde yazdım ornek olması acısından
    if(menuNo==3) { Print "tarih"  invertli yazısı; }
    if(menuNo==4) { Print "ayar"  invertli yazısı; }
    while(ileri);
    }
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: LukeSkywalker - 03 Haziran 2011, 15:17:13
tuştan elini çekene kadar bekletiyor. Yani tuşa birkez bastığında diğer menüye geçmemesi için...
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 03 Haziran 2011, 15:55:49
Benim konuya dönecek olursak kimsenin fikri yokmu. ???
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Klein - 03 Haziran 2011, 16:16:34
Grafik modülünün katmanları arasında XOR özelliği varsa işin kolay.  KAtmanın birine,  negatif görünecek kısım büyüklüğünde kutu çizip kutunun içini 0xFF doldurursan direk negatif görüntü elde edersin.
5-6 yıl kadar önce yaptığım bir uygulamaya şöyle bir göz attım. Aslında tam senin istediğin şey.  Ama aradan uzun zaman geçtiği için  ayıklama yapamadım.  Eğer grafik modülün 320x240 ise , kod ayıklamasını yapabilirsem kodu göndermeye çalışırım.

ekleme:
Protonla çalıştığını şimdi farkettim. Benim kodlar C.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 03 Haziran 2011, 16:22:11
Hocam katmanlarda XOR özelliği varmı bilmiyorum. Kullandığım LCD WG12864B. Aslında aşağıdaki kaydet ve iptal butonunu dikdörgen içine almayı düşünüyordum. İş zorlaşacak gibi görünüyor. Nasıl çözerim hala kara kara düşünmekteyim  ??? ??? ???
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 04 Haziran 2011, 00:01:37
Güzel proje kolay gelsin.
Hocam önce grafik çizdirmekle başlayın bence. yani invert bir image nasıl oluşturulur kare yada çember (circle) nasıl çizdirilir gibi. sonrası çorap söküğü gibi gelir.
çizimle ilgili kodlar
Plot:istenen koordinata (pixel) nokta koyar
Unplot:noktayı siler
circle 1,Xpos,Ypos,Radius (xpos ve ypos a radius kadar açılı çember çizer (eğer 0 olursa siler))

Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 04 Haziran 2011, 10:46:16
Hocamaynen dediğiniz gibi yapıyorum. Protondadaki Grafik lcd ile ilgili komutları sadece kullanarak nasıl çalıştıklarını anlamaya çalışıyorum. Daha protonda yeniyim. Şimdilik LCDWrite komutuile ekrana çizgiler çizip içi boş dikdörgenler çerçeveler oluşturuyorum. (Projemin temelinde bu aşamalarda var) Ondan sonra circle ve box komutlarını ineleyeceğim. Bunların çalışmasını iyice anlamalıyım.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: KONYALI - 04 Haziran 2011, 10:55:47
@Mucit23
Hocam resimdeki devreyi ben yapmıştım burada görmek ve birilerinin işine yaraması beni çok sevindirdi.320volt ta kodlarını vs paylaşmıştım. Sanırım kodları C dilinde yazıldığı için içinden çıkamadınız. Aslında karakter LCD de menü oluşturmaktan pek de farklı bi algoritması yok. Sadece menu_id adlı bir değişkenle hangi seçenekde olduğunuzu takip ediyorsunuz ve ona göre kutunun içini doldurup yazıyı tersliyorsunuz. Sadece protonda dikdörtgen çizme ve yazı tersleme gibi komutları kullanarak halledebilirsiniz.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 04 Haziran 2011, 11:07:09
Aslında şunu öğrensem işi çözecek gibiyim. Protonda herhangi bir noktadaki görüntüyü nasıl tersleyeceğimi bilemiyorum.Böyle bir komut varmı
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Maxim - 04 Haziran 2011, 11:35:34
öncelikle help içerisindeki print açıklamalarına bakmalısın
göreceksinki grafik lcd komutları 2 tipe ayrılıyor
bunu zaten kodun en başında tanımlıyorsun
bunları biliyorda olabilirsin genede yazayım

declare graphic veya samsung (KS0108 çipli ekranlar)
declare toshiba (T6963 çipli ekranlar)

T6963 ekranlar kendi özellikleri bakımından çok daha üstünler
istediğin şeyi direk tek komutla bu ekranlarda yapabiliyor olman lazım, emin değilim .

ks0108 ekranlar piyasada çok bilinen tipler

her iki ekran için en başta komple ekranı invert yani negatif yapabilirsin
her iki ekranda da istediğin satırdaki yazıları invert edebilirsin

pixel komutunada bakmanı isterim
pixel komutu ile ekranda istediğin noktayı yakabilir veya söndürebilirsin .
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 04 Haziran 2011, 11:44:41
Anladım hocam. ozaman hocam ilgili butonun üzerine gelince kutuyu ive kutu içerisindeki yazıyı invert etmek için pixel pixel işlemeliyim. Biraz zahmetli gibi görünüyor. Daha kolay bir yolunu bulsam iyi olacak ama hiç olmadı bunu denerim. Ben yinede bu yöntem üzerinde biraz çalışayım bişeyler yapmaya çalışayım. Birde ekranı piksel piksel işleyeceğim için inş ekranda bir geçik oluşmaz. Gerçi 18F452 ve 20 Mhz de çalışıyorum. gecikme olmaz inş
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 05 Haziran 2011, 23:27:31
Arkadaşlar şu Circle komutu kafamı bozuyor. Bir türlü istediğim gibi çalıştıramadım. Yapmak istedğim şey lcd ekranın tam ortasına bir daire çizmek help dosyasındakilere bakarak birşeyler yaptım. Denediğimde lcd ekranda kıpırdaşmalar oluyor fakat sadece lcd ekranın alt kısmında oluşuyor. Ne olduğu belli değil. Sizce nerede hata yapıyorum. Aynı şekilde box komutunuda bir türlü çözemedim. Ondada istediğim gibi kullanamıyorum
Yazdığım kodlar bunlar. Beni yönlendirirseniz sevinirim.
Device 18F452

Config_Start
   OSC = HS ; HS-PLL Enabled
   PWRT = On ; Enabled
   BOR = OFF ; Disabled
   WDT = OFF ; Disabled
   LVP = OFF ; Disabled
   Debug = OFF ; Disabled
Config_End

Xtal 20
TRISA=%00111111
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000

PORTA=0:PORTB=0
PORTC=0:PORTD=0
    PORTE=0
   
All_Digital= TRUE                  'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPort = PORTD                 'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPin = PORTB.0                'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPin = PORTB.2                'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPin = PORTB.1                'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1Pin = PORTB.4               'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2Pin = PORTB.3               'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_Type =  Samsung            'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
Internal_Font = On                 
Font_Addr = 0
    GLCD_EXTERNAL_PRINT = PPRINT
PORTB.5=1
Dim XPOS As Byte
Dim YPOS As Byte
Dim X    As Byte
Dim Y    As Byte
Dim RADIUS As Byte
Dim SET_CLR As Byte
Dim SIZE As Byte
Cls
SIZE=20
SET_CLR=1
RADIUS=20
XPOS=63
YPOS=32

Circle SET_CLR , XPOS , YPOS , RADIUS
DelayMS 10

End
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: pcb - 06 Haziran 2011, 02:25:39
OSC = HS ; HS-PLL Enabled
Xtal 20

PLL aktif ve kristali 20Mhz kullanıyorsan bu tür ekran problemleri olabilir. Kristali 10 Mhz kullanmalısın PLL için.
Programa bakmadım sadece üstte bunu gördüm
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 06 Haziran 2011, 09:17:04
10 Mhz bir kristal ile deniyeyim. Hatta 4 Mhz de bir de deniyeyim. Daha önce birkez pll yi aktif etmiştim. Sonradan iptal ettim ama orayı düzeltmemişim. 4 Mhz de bir deniyeyim
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 06 Haziran 2011, 11:08:56
Merhabalar
Dediğinizi gibi yaptım. Elimde 10 Mhz kristal yoktu. 4 mhz de deneyince oldu. Ekranda çember oluştu. Acaba neden yüksek frekanslarda bu komutlar çalışmıyor. Yada düzgün çalışmıyor. Bu konuda bi tecrübesi olan varmı.
Karakter lcd leri kullanırken 8 Mhz ve üzerinde lcd veri gönderiminin yavaşlatılması gerekiyor. Aynı işlemi GLCD dede yapabilirmiyiz.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Maxim - 06 Haziran 2011, 17:21:31
mucit,

kodun başına Declare GLCD_STROBE_DELAY = 10 yaz sonra istersen 40mhz de çalış 

ayrıca yukarıda yazmıştım yapmamışsın, tekrar yazıyorum
help içindeki print komutlarına bak
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 06 Haziran 2011, 18:12:43
Alıntı yapılan: Maxim - 06 Haziran 2011, 17:21:31
mucit,

kodun başına Declare GLCD_STROBE_DELAY = 10 yaz sonra istersen 40mhz de çalış 

ayrıca yukarıda yazmıştım yapmamışsın, tekrar yazıyorum
help içindeki print komutlarına bak

Maxim hocam Kodu ekleyince düzeldi sorun. Teşekkür ederim.
İnvert işine gelince haklısınız. Sizin söylediklerinizi unutmuşum. Şimdi ben proton help dosyasına biraz göz gezdirdim. Hemen şu kısım gözüme çarptı.
Most of the above modifiers still work in the expected manner, however, the AT modifier now starts at Ypos 0 and Xpos 0, where values 0,0 will be the top left corner of the LCD. There are also four new modifiers. These are: -

FONT 0 to n  Choose the nth font, if available
INVERSE 0-1  Invert the characters sent to the LCD
OR 0-1   OR the new character with the original
XOR 0-1   XOR the new character with the original

Once one of the four new modifiers has been enabled, all future PRINT commands will use that particular feature until the modifier is disabled. For example: -

' Enable inverted characters from this point
PRINT AT 0 , 0 , INVERSE 1 , "HELLO WORLD"
PRINT AT 1 , 0 , "STILL INVERTED"
' Now use normal characters
PRINT AT 2 , 0 , INVERSE 0 , "NORMAL CHARACTERS"


Acaba doğru yerlerimi inceliyorum. Ekrana yazı yazarken "INVERSE 1" komutunu eklersem(yukarıdaki gibi) yazı terslenmiş olarak çıkarmı

Son olarak birşey daha sormak istiyorum. Çevremdeki GLCD ve proton ile yapılmış uygulamaların çoğunu inceledim sayılır. Bazılarında GLCD ye yazı yazmak için programın en altına Include "FONT.INC" yani proton içerisindeki font dosyasını çağırarak ekrana Direk Print At 1 , 1 , "Merhaba" gibi bir komutla yazı yazılıyor. Ben bunu denedim Fakat yine ekranda yazıyı çıkartamadım. Bunu yapmak için acaba font dosyasında değişiklikmi yapmak gerekiyor.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Maxim - 07 Haziran 2011, 07:13:48
evet inverse komutu yazıyı tersler

font.inc için birşey diyemiyorum çünkü yazı gelmesi lazım
sample klasörü içinde grafik lcd için örnek bir dosya olması lazım diye hatırlıyorum
işte varmış
bu çalışır, sende niye olmuyor bilemiyorum


' Display text and graphics on a graphic LCD

    Include "Proton18_G4.Int"
    Declare Optimiser_Level = 2

    Declare Warnings = Off
    Declare Stamp_Compatible_Sin = On
' Set up some Variables

    Dim Xpos As Byte
    Dim Ypos As Byte

    DelayMS 100
    Cls
    Print "Graphic LCD Test"

Again:
    For Xpos = 0 To 63
        Ypos = Sin Xpos
        Plot Xpos , Ypos
        DelayMS 10
    Next
    For Xpos = 0 To 63
        Ypos = Sin Xpos
        UnPlot Xpos , Ypos
        DelayMS 10
    Next
    GoTo Again

    Include "Font.Inc"
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 07 Haziran 2011, 11:34:08
Maxim hocam invert komutunu denedim. Tamda istediğim gibi çalışıyor. Burada sıkıntım yok ama şu font dosyası kafamı karıştırıyor ???
Nedense o font dosyasını kullanarak ekrana yazı yazamıyorum ama kendi oluşturduğum font dosyası ile yazı basabiliyorum.
Yazdığım kodlar bunlar. Acaba kodlarımdamı bir hata var. Aynı tanımlamalar ilefontlu yazı basabiliyorum.
Device 18F452

Config_Start
   OSC = XT ; XT OSC
   PWRT = On ; Enabled
   BOR = OFF ; Disabled
   WDT = OFF ; Disabled
   LVP = OFF ; Disabled
   Debug = OFF ; Disabled
Config_End

Xtal 20
TRISA=%00111111
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000

PORTA=0:PORTB=0
PORTC=0:PORTD=0
    PORTE=0
   
All_Digital= TRUE                  'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPort = PORTD                 'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPin = PORTB.0                'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPin = PORTB.2                'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPin = PORTB.1                'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1Pin = PORTB.4               'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2Pin = PORTB.3               'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_Type =  GRAPHIC             'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
Internal_Font = On                 
Font_Addr = 0
Declare GLCD_STROBE_DELAY = 10
GLCD_EXTERNAL_PRINT = PPRINT
Dim XPOS As Byte
Dim YPOS As Byte
Dim X    As Byte
Dim Y    As Byte
Dim RADIUS As Byte
Dim SET_CLR As Byte
Dim SIZE As Byte
    DelayMS 100
    Cls
Print At 3,20,"Mucit"
End
Include "font.inc"


Bunu derleyip simülasyonda dedediğimde ekran resimdeki gibi saçmalıyor..
(http://s2.postimg.cc/g67ito2s/Ads_z.jpg) (http://postimg.cc/image/g67ito2s/)
Başka fikri olan yokmu arkadaşlar Neden protonun kendi içerisindeki font dosyasıyla ekrana yazı yazamıyorum :(
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 07 Haziran 2011, 14:27:54
GLCD_EXTERNAL_PRINT = PPRINT
silip denermisiniz.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 07 Haziran 2011, 14:37:31
Bu gün akşama kadar oturup proton komutlarının(Daha doğrusu kullandığım komutların) ne işe yaradığını öğrenmeye çalışacağım. Dediğinizi yaptım. Sorun düzeldi. Şimdi aklımda şu soru oluştu.
"GLCD_EXTERNAL_PRINT = PPRINT" Bu komut ne işe yarıyorki glcd nin saçmalamasına yol açıyor
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 07 Haziran 2011, 20:50:18
Muhittin Hocam Yukarıdaki gibi GLCD_EXTERNAL_PRINT = PPRINT
komutunu kaldırınca direk prınt komutuyla ekrana yazı yazmaya başladım. Ama şimdi farkettmiki Ekrana hem prınt komutyla normal yazı hemde font oluşturup fontlu yazı yazılmıyor. Mesela örnek vereyim. Yukarıdaki komutu programa ekleyince istediğim fontta ekrana yazı yazabiliyorum ama direk proton içerisindeki font dosyasıyla yazı yazamıyorum. Ekranda resimdeki gibi bişeyler çıkıyor. Yukarıdaki komutu programdan kaldırınca bu sefer fontlu yazı yazamıyorum ama Normal yazı yazabiliyorum. Şimdi merak ettiğim şey İkisini bir arada nasıl kullanabilirim. Bunu öğrenmek istiyorum.

Birde normal font dosyasıyla ekrana yazı yazarken adresleme işi biraz aklımı karıştırdı. Şimdi ekranı normal karakter lcd gibi mi düşünmek lazım  anlamadım gitti Denemelerim ile anladığım kadarıyla ekranda 8 satır oluşuyor. Yazı yazarken bu 8 satırlar içerisinde yazı yazıyoruz. Satırlar tamamda bu sütünları anlamadım. Ekran karakter lcdlerdeki gibi 5x8 kutuclarla dolu gibimi düşünmek lazım.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 07 Haziran 2011, 21:12:35
Aykutun konuyla ilgili güzel örnei var.
Device = 16F877
Config XT_OSC,WDT_OFF,PWRTE_ON,BODEN_ON,LVP_OFF,DEBUG_OFF,CP_ALL
XTAL = 4
ALL_DIGITAL= TRUE 'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPORT = PORTD 'GLCD DATA PORTLARI PORTD'YE BAĞLI
LCD_RSPIN = PORTC.5 'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPIN = PORTC.1 'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPIN = PORTC.4 'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1PIN = PORTC.2 'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2PIN = PORTC.3 'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_TYPE = GRAPHIC 'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
INTERNAL_FONT = On
FONT_ADDR = 0
GLCD_EXTERNAL_PRINT = PPRINT
Cls
DelayMS 500
BASLA:
Print Font ArialK____12
Print At 3,20,"AYKUT 54"
DelayMS 2000

Print Font ArialK____12
Print At 20,0,"320VOLT.COM"
DelayMS 2000

Print Font Arial____8
Print At 35,0,"glcd2 karakter basma"
DelayMS 2000

Print Font ArialK____12
Print At 50,0,"16F877 + GLCD :)"
DelayMS 2000
End
Include "Arialk12.txt"
Include "ARIAL8.txt"


http://www.teknomerkez.net/ek/476/glcd2-karakter-basma.zip
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 07 Haziran 2011, 21:35:17
Evet aykut hocamızın bu örneklerinibiliyorum. Benim anlamadığım Neden kendi oluşturduğum font dosyasıyla proton içerisindeki font dosyasını bir arada kullanamıyorum. Aslında bunun sebebi belli yukarıda anlatmışım. Dediğim gibi GLCD_EXTERNAL_PRINT = PPRINT komutunu kaldırınca normal fontta yazı yazabiliyorum ama büyük fontlu yazılar yazamıyorum. Bu komutu ekleyincede kendi oluşturduğum fontlarda yazı yazabiliyorum ama protonun font dosyasını kullanarak yazı yazamıyorum. Zaten verdiğiniz örnektede aykut hocamız sadece kendi oluşturduğu font dosyalarıyla yazı yazmış. Umarım anlatabilmişimdir. Bunun çözümü nasıl olur. Kendi oluşturduğum font dosyalarında fazla küçük yazılar yazamıyorum. Yani anlayacağınız hem kendi oluşturduğum font dosyalarını hemde protonun kendi font dosyasını bir arada kullanamak istiyorum. Bunu yapmam lazım. Nasıl yapabilirim bunu yardımlarınızı bekliyorum
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 07 Haziran 2011, 23:00:53
Arkadaşlar resmen duvara toslamış durumdayım.  :( Bu işi nasıl halledebilirim bilmiyorum. Açıkçası kendi oluşturduğum font dosyaları protonun font dosyaları gibi olmuyor. İstediklerimi karşılamıyor. Üstelik kendi oluşturduğum fon dosyalarında boşluk koyamıyorum. Öyle bir karakter desteği yok. Karakterden sayılmıyor. Yardımlarınızı bekliyorum
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Klein - 08 Haziran 2011, 00:16:28
Proton bilmiyorumbu yüzden şu komut diyemem.
GLCD_EXTERNAL_PRINT  ifadesinin ilk tanımlandığı yeri bulup inceleyerek belki sorun çözülür.
Aşağıda yazdıklarım tamamen youma dayalı bilgiler.

GLCD_EXTERNAL_PRINT  muhtemelen fonksiyon pointer gibi birşey.  GLCD_EXTERNAL_PRINT = PPRINT ifadesi de
GLCD_EXTERNAL_PRINT  fonksiyon pointerine PPRINT  fonksiyonunun adresini atıyor. 
Eğer durum böyle ise:
GLCD_EXTERNAL_PRINT pointerinin ilk tanımlandığı yerde bir değer almıştır. Budeğer 0 olabilir.
Bu tanım bulunup program içerisinde :

kendi fontunuzu kullanacağınız bölüme geldiğinizde
GLCD_EXTERNAL_PRINT = PPRINT yazıp  kullanırsınız
PROTON fontlarını kullanacağınız zaman GLCD_EXTERNAL_PRINT = ilk tanımlanan değer ;  yzarak proton fontlarına geçiş yapabilirsiniz.

Eğer GLCD_EXTERNAL_PRINT = PPRINT ifadesi
C deki #define ifadesi gibi bir tanımlama ise ( çok sanmıyorum)  o zaman da
C deki #undef  ifadesi gibi tanımı iptal eden bir komut olup olmadığına bakmak gerek.

Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 08 Haziran 2011, 01:31:59
kendi oluşturduğun font dosyaları neden işine yaramıyor ? 12 değilde 8 lik yada 6 lık olmuyormu ?
sonuçta orjinal font da bir çeşit inc dosyası. ben yarın deney modülünde deneyeyim.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 08 Haziran 2011, 01:35:55
http://www.protonbasic.co.uk/content.php/843-PPRINT-Enabling-Variable-Fonts-on-a-Graphic-LCD
burada tim açıklamış sanırım.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: pcb - 08 Haziran 2011, 08:12:23
Sözünü ettiğiniz problemlerin hepsinin çözümü var, araştırma yapın
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 08 Haziran 2011, 10:06:29
Hocam araştırıyorum
Aslında hiçbirşey yapamazsdam kendi oluşturduğum font dosyalarıyla idare edeceğim. Kendi oluşturduğum font dosyaları bir nezlede olsa işimi görüyor. Fakat şöyle bir durum var. Birçok font dosyasıyla denemeler yaptım. Baktımki protonunun kendi font dosyasındaki yazı sitiline en yakın olan Arial_6 oldu. Ama bunda bile harfler çok biçimsiz çıkıyor. Üstelik Kendi oluşturduğum font dosyalarında iki kelime arasına boşluk koyamıyorum. Kendi oluşturduğum font dosyalarında boşluk karakterden sayılmıyor.  Protonun kendi font dosyasında küçük yazılarda çok güzel oluyor. Küçük boyutlu yazılarda kendi oluşturduğum fontları kullanmak istemememin sebebi budur. Şimdilik araştırıyorum. Umarım çözümünü bulurum.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: pcb - 08 Haziran 2011, 13:47:13
import ettiğin fontlardaki harfleri en azından kullandıklarını düzelt , kullanmadığın bir karakteri ise tamamen silerek boşalt o karakteri boşluk olarak kullan.

"&" karakteri creator da tamamen sil öyle kaydet , kullanırken ise print at 10,100, "pic&proje" gibi yaz "pic proje" olarak ekranda çıkar.
Import edilen karakterler hemen kullanılacak görüntüde olmayabilir.
eğer hala 20Mhz kullanıp PLL yapıyorsan ve glcd de ki problemi verilen gecikme koduyla halletim diye düşünüyorsan yanılıyorsun , bir kaç iç içe döngüde sürekli olmadan sorun çıkartacaktır
Ben sürekli pprint kodlarıyla çalışıyorum.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 08 Haziran 2011, 14:35:46
Hocam Pll kullanmıyorum ozaman sadece deneme amaçlı aktif etmiştim. Zaten geçikme koyduktan sonra hızdan kaynaklanan problemler ortadan kalktı. Boşluk bırakma işinide anladım. Onu hallederim. En çok kullandığım karakterleri düzeltmek için Yardımcı bir programa ihtiyacım var. Yani dataları elde edebileceğim. 8x8 matrix veya 5x7 matrix olabilir. Bu karakter lcd ler için yapılmış programlar var. Onlarla oluşturduğum dataları kullanabilirmiyim. Arial_6 nın dataları gerçekten farklı. Her harf max. kaç satır ve sütündan oluşuyor bilmek lazım

Yanlız ben hala İki font dosyasını nasıl bir arada kulllanacağımı anlamadım. Bu sorunların çözümü var demişsiniz. Bana bir ipucu verebilirmisiniz.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 09 Haziran 2011, 09:17:25
Alıntı yapılan: pcb - 08 Haziran 2011, 13:47:13
import ettiğin fontlardaki harfleri en azından kullandıklarını düzelt , kullanmadığın bir karakteri ise tamamen silerek boşalt o karakteri boşluk olarak kullan.

"&" karakteri creator da tamamen sil öyle kaydet , kullanırken ise print at 10,100, "pic&proje" gibi yaz "pic proje" olarak ekranda çıkar.
Import edilen karakterler hemen kullanılacak görüntüde olmayabilir.
eğer hala 20Mhz kullanıp PLL yapıyorsan ve glcd de ki problemi verilen gecikme koduyla halletim diye düşünüyorsan yanılıyorsun , bir kaç iç içe döngüde sürekli olmadan sorun çıkartacaktır
Ben sürekli pprint kodlarıyla çalışıyorum.

Hocam Birazcık araştırmay yaptım. Ama istediğim bilgiye ulaşmakta zorlanıyorum. Protonun kendi font dosyasıyla kendi oluşturduğum font dosyasını bir arada kullanmaya çalışıyorum. Bu mümkün demişsiniz. Nasıl yapacağımı bilmiyorum. Bana bir yol gösterebilirmisiniz. Nereleri incelemeliyim..
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 10 Haziran 2011, 23:51:35
Arkadaşlar kimsenin fikri yokmu :(
Herşey deneme yanılma yöntemine döndü.. Bundan nefret ediyorum
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Maxim - 11 Haziran 2011, 00:01:00
çalışmayan son programı yazarmısın
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 11 Haziran 2011, 00:14:44
Çalışmayan program yok aslında yani hem protonun kendi font dosyasını kullanarak, hemde benim oluşturduğum font dosyaları ile ekrana yazı yazabiliyorum. Sorun iki font dosyasını birlikte kullanamayışımda.

Sorun bu komutta
GLCD_EXTERNAL_PRINT = PPRINT
Bu komutu ekleyince kendi oluşturduğum font dosyalarını kullanabiliyorum ama protonun kendi font dosyasını kullanarak yazı yazmaya çalıştığımda glcd saçmalıyor..

Bu komutu kaldırırsam protonun kendi font dosyası doğru düzgün çalışıyor ama kendi font dosyalarımla yazı yazdığımda ekranda yazı çıkmıyor. Bu iki font dosyasını  bir arada kullanabilirsem çoğu sıkıntılarım çözülecek. Çünkü kendi oluşturduğum font dosyasındaki karakterleri teker teker düzenlemek istediğim şekle sokmak gerçekten çok büyük sabır ve kafa istiyor. Zor bir iş. Çin işkencesi gibi. Gerçi epeyce düzenledim ama daha çok var....

Yukarıda bazı arkadaşlar bunun çözümü var demiş. Bunun çözümünü öğrenmek istiyorum.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 12 Haziran 2011, 23:48:13
mucit fontconvertor tarzı programlar var. muhtelemen biliyorsundur. yanlız 8 lik yada 6 lık bilemeyeceğim bir font neden işine yaramıyor anlamıyorum. 2 adet font dosyasını yani biri büyük font diğeri küçük font olarak kullanabilirsin.
bahse konu PPRINT pixelprint anlamındadır bu komutu yazarsan aslında img basar gibi font basar. buda diğer standart font ile olmaz.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 13 Haziran 2011, 08:49:23
Anladım hocam. Font converter programını biliyorum çok çeşitli fıontlar oluşturdum.  Kendi oluşturduğum fontlarda küçük yazılar hiçde istediğim gibi çıkmıyor. Birçok fontta denedim hepsi aynı. Bu fontları kendim istediğim gibi düzenlemem mümkün ama bu çok zahmetli bir iş gerçekten beni yoruyor. Başka çözüm önerisi olan arkadaş varsa dinlemeye hazırım ama galiba bu işin çözümü yok. Yada var biz bilmiyorum. Ben birazdaha yabancı proton sitelerine bakayım. Hocam sizin verdiğiniz linkte bununla ilgili bişeylerden bahsetmiş ama tam olarak anlayamadım. Oradaki asıl konu nedir
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 13 Haziran 2011, 09:19:47
Alıntı YapThat's the story, but what about the code and how do you use it.
GLCD_EXTERNAL_PRINT = PPRINT
By issuing this command the compiler disables its own print routines and loads in the code stored in PPRINT.INC (which can be found in you INC folder)

PPRINT adında bir dosya yardımıyla bu farklı fontları kullandığımızı söylüyor. ve print rutinleri kapattığını belirtiyor. bu pprint dosyasının yerini belirtiyor
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 13 Haziran 2011, 10:00:47
Evet istediğimde print ve pprint fonksiyonlarını açıp kapatabilsem olabilir aslında Pprint dosyasının yerine koyabileceğim başk bir dosya yok.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 18 Haziran 2011, 13:45:18
Çaresizlik insanı başka yollara sürüklüyor. Anlamadığım nokta ise pcb isimli arkadaşın çözümü var diyipde ortadan kaybolması oldu. Neyseki bazı programların yardımı ile kendi font dosyamı oluşturdum sayılır.
Şimdi işler düzene girdi fakat ayrı anlamsız bir sorunum var. 18F452 ve 20 Mhz de kullanıyorum. Protonda config ayarlarını aşağıdaki gibi yaptığımda pic kendine yaklaşık 1.7 sn de bir reset atıyor.
Config_Start   
OSC = HS
PWRT = On
BOR = OFF
WDT = On
LVP = OFF
Config_End

Osc ayarlarını hiç yapmadığımda herhangi bir sorun olmuyor.  Sorunun configürasyon ayarları ile olduğunu düşünüyorum. Bilmediğim bir özelliğimi var. Denemelerimi hem proteusta hemde deneybordu üzerinde yapıyorum sonuç değişmiyor. Bunun sebebi sizce ne olabilir.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: JKramer - 18 Haziran 2011, 13:56:29
Watchdog timer açık, ayarladığınız zamandan önce bu timer'ı sıfırlıyor musunuz?
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 18 Haziran 2011, 14:06:48
Hayır hiçbirşey yapmıyorum direk programa başlıyor.
Belki WDT ile sorun olabilir ama gözüme şu çarptı. Tüm config ayarlarını silip sadece aşağıdaki gibi yaptığımda yine aynı sorun oluyor.
Config_Start   
OSC = HS
Config_End
Config ayarları en uygun nasıl olmalı? böyle bir sorun yaşayan oldumu.?
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Murat Mert - 19 Haziran 2011, 15:17:33
S.A.
@ mucit kardeş çözüm halen bulamadın galiba linkteki gibi birşey yap. Belki sana fikir verir. Kolay gelsin.

http://www.izlesene.com/video/video-6/3643691 (http://www.izlesene.com/video/video-6/3643691)
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: smyomekatronik - 19 Haziran 2011, 21:09:24
Esselamu Aleyküm

Umut KAZANÇ hocamızım kendi sitesinde GLCD Resim/Yazı Kod Çevirici diye bir proje var. Projeyi incelemenizi öneririm.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: sezgiin - 20 Haziran 2011, 09:13:37
Alıntı yapılan: Mucit23 - 18 Haziran 2011, 14:06:48
Hayır hiçbirşey yapmıyorum direk programa başlıyor.
Belki WDT ile sorun olabilir ama gözüme şu çarptı. Tüm config ayarlarını silip sadece aşağıdaki gibi yaptığımda yine aynı sorun oluyor.
Config_Start   
OSC = HS
Config_End
Config ayarları en uygun nasıl olmalı? böyle bir sorun yaşayan oldumu.?

config ayarlarına WDT = OFF eklersen sorunun çözülecektir.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 20 Haziran 2011, 12:19:24
Arkadaşlar teşekkür ederim sorunu çözdüm. "Sezgiin" arkadaşa teşekkürler..
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 22 Haziran 2011, 13:52:06
Arkadaşlar son bi sorunum kaldı..
Malum glcd kullandığımız font dosyaları ve resim dataları pic hafızasında epeyce yer kaplıyor. Gerek protonun kendi help menüsündeki şemada eprom kullanmış. Bende bu dataları resim datalarını font dosyalarını eprroma yükleyip kullanmak istiyorum. Buna benzer bir çalışma yapan gören oldumu. Nasıl yapmam gerekiyor
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: smyomekatronik - 22 Haziran 2011, 20:48:41
Alıntı yapılan: smyomekatronik - 19 Haziran 2011, 21:09:24
Esselamu Aleyküm

Umut KAZANÇ hocamızım kendi sitesinde GLCD Resim/Yazı Kod Çevirici diye bir proje var. Projeyi incelemenizi öneririm.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 24 Haziran 2011, 09:55:57
Merhabalar Arkadaşlar.
Yaptığım çalışmamda 6-7 tane resim olunca. Şimdiden hafızanın %50 den fazlasını resimler ve font dosyaları kapladı. Yine neyse font dosyalarında hiçbirzaman kullanmayacağım karakterlerin datalarını silerek font dosyalarını biraz hafifletiyorum. (Artık font dosyalarında değişiklik yapmaya alıştım:) )
Ama ne yazıkki resim datalarında böyle bir imkanım yok.  Hal böyle olunca önümde iki çıkar yol var
1.si yine 18F452 ile devam edip eeprom kullanarak resim datalarını eeproma gömüp programı hafifletmek,
2. seçeneğim ise Hemen hemen aynı pin yapısına sahip ama 2 katı hafızaya sahip olan bir pic ile(mesela Pic18F4620-64Kb) hafıza ile felan uğraşmadan çalışmalara devam etmek.
Aslında 1. seçenek bana daha cazip geliyor. Bu yüzden Umut Kazanç(Picman) İsimli arkadaşın yaptığı uygulamayı inceledim. Bişeyler yapmaya çalıştım.
Resimdeki gibi Umut Kazanç isimli arkadaşın hazırladığı GLCD resim yazı kod çevirici programı ile resim leri yükleyip kaydedip bin dosyası haline getirdim.
(http://s4.postimg.cc/l4u0hzqc/Ads_z.jpg) (http://postimg.cc/image/l4u0hzqc/)
protonda kendi verdiği kodlarla bi program hazıladım.
Device 18F452
Config_Start
   OSC = HS ; HS
   PWRT = OFF ; Disabled
   BOR = OFF ; Disabled
   WDT = OFF ; Disabled
   LVP = OFF ; Disabled
Config_End

Xtal 20

TRISA=%00000000
TRISB=%00000000
TRISC=%00000000
TRISD=%00000000
TRISE=%00000000

PORTA=0:PORTB=0
PORTC=0:PORTD=0
    PORTE=0

All_Digital= TRUE                  'ADC PORTLARININ TAMAMI DİJİTAL GİRİŞ VEYA ÇIKIŞ
LCD_DTPort = PORTD                 'GLCD DATA PORTLARI PORTB'YE BAĞLI
LCD_RSPin = PORTB.0                'GLCD RS PİNİ PORTC.5 BAĞLI
LCD_ENPin = PORTB.2                'GLCD ENABLE PİNİ PORTC.1 BAĞLI
LCD_RWPin = PORTB.1                'GLCD RW PİNİ PORTC.4 BAĞLI
LCD_CS1Pin = PORTB.4               'GLCD CS1 PİNİ PORTC.2 BAĞLI
LCD_CS2Pin = PORTB.3               'GLCD CS2 PİNİ PORTC.3 BAĞLI
LCD_Type =  GRAPHIC             'GLCD TİPİ GRAFİK KS0108 128*64B WİNSTAR
Internal_Font = On           
Font_Addr = 0
Declare GLCD_STROBE_DELAY = 10
GLCD_EXTERNAL_PRINT = PPRINT

SCL_Pin = PORTC.3
SDA_Pin = PORTC.4

    Dim EE_adr      As Word
    Dim EE_con      As Byte
    Dim GLADR       As Word
    Dim GTur        As Byte
    Dim Gxkor       As Byte
    Dim Gykor       As Byte
    Dim Gxuz        As Byte
    Dim Gyuz        As Byte
    Dim Gxsay       As Byte
    Dim Gysay       As Byte
    Dim Gcyts       As Byte
    Dim Gyazuz      As Byte
    Dim Ginv        As Byte
    Dim ResDat      As Byte
    Dim YazDat      As Byte
    DelayMS 200
    Cls
   
    BASLA:
    GLADR = $0405
    GoSub GLCD_GOSTER
    GoTo BASLA
   
    GLCD_GOSTER:
    EE_adr = GLADR
    EE_con = $A1
    HBusIn EE_con, EE_adr, [GTur]
    On GTur - 1 GoToL RESIM_GOSTER, YAZI_GOSTER, CYAZI_GOSTER
    EE_adr = 0
    Return

RESIM_GOSTER:
    EE_adr = GLADR + 1
    HBusIn EE_con,EE_adr,[Gxuz, Gyuz, Gxkor, Gykor]
    EE_adr = GLADR + 5
    Gyuz = (Gyuz / 8) - 1
    For Gysay = Gykor To Gykor + Gyuz
        For Gxsay = Gxkor To Gxkor + (Gxuz - 1)
            HBusIn EE_con, EE_adr,[ResDat]
            LCDWrite Gysay, Gxsay, [ResDat]
        Inc EE_adr
        Next Gxsay
    Next Gysay
    Return

YAZI_GOSTER:
    EE_adr = GLADR + 1
    HBusIn EE_con, EE_adr, [Gyazuz, Gxkor, Gykor, Ginv]
    EE_adr = EE_adr + 4
    For Gxsay = Gxkor To Gxkor + (Gyazuz - 1)
        HBusIn EE_con, EE_adr, [YazDat]
        Print At Gykor, Gxsay, Inverse Ginv, YazDat
        Inc EE_adr
    Next Gxsay
    Return 
   
CYAZI_GOSTER:
    EE_adr = GLADR + 1
    HBusIn EE_con, EE_adr, [Gcyts]
    EE_adr = GLADR + 2
    For Gysay = 0 To Gcyts - 1
        HBusIn EE_con, EE_adr, [Gykor, Gyazuz, Ginv]
        EE_adr = EE_adr + 3   
        For Gxsay = 0 To Gyazuz - 1
            HBusIn EE_con, EE_adr, [YazDat]
            Print At Gykor, Gxsay, Inverse Ginv, YazDat
            Inc EE_adr
        Next Gxsay
    Next Gysay
    Return



Program sorun çıkarmadan derleniyor. Simülasyonda eeproma oluşturduğum bin dosyasını picede hexi yükleyip çalıştırıyorum. Ekranda hiçbirşey görünmüyor. Resim çıkmıyor. Sorun nerede tam anlıyamadım. Mutlaka biryerde hata yapıyorum. Acaba I2C tanımlamalarınımı eksik yaptım. Fikri olan varmıdır.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: smyomekatronik - 24 Haziran 2011, 10:15:47
Mucit devre proteus da çalışmıyor boşuna uğraşma.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 24 Haziran 2011, 10:16:40
Nasıl yani illa gerçektemi denememiz lazım :S
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: M_B - 24 Haziran 2011, 10:20:10
Alıntı yapılan: smyomekatronik - 24 Haziran 2011, 10:15:47
Mucit devre proteus da çalışmıyor boşuna uğraşma.

Neden Proteusta calısmıyor?
Proteusta eproma bin dosyası tanıtıldımı. Tanıtılmadı ısede calısmaz. ( aynı hex gibi )
Bu tur uygulama gordum ve proteusta calısıyor. Hatta bu forumda olması lazım. Bir zamanlar ahmet2004 hocamız paylasmıstı.

Kolay gelsin

Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 24 Haziran 2011, 10:21:44
hocam proteustada eeproma hexi yükler gibi bin dosyasını gösteriyorum. Anlam veremedim :S
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: smyomekatronik - 24 Haziran 2011, 10:26:29
Çünkü ben de çalıştıramadım. Proteus da çalışmadığını umut hocam kendisi söyledi. Devreyi fiziksel olarak denemen lazım.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: M_B - 24 Haziran 2011, 10:26:57
Pekı hocam programı calıstırdıktan sonra Eepromun (24Cxx) icerigine bir bakın yukledıgınız veriler gozukuyormu.
Eger gozuluyorsa ve calısmıyorsa program da sorun var. hocam Proton bilmediğim icin bir yorum yapamıyorum.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 24 Haziran 2011, 10:31:01
Anladım hocam dediğinizebakayım. Birde devreyi fiziksel olarak deniyeyim.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Maxim - 24 Haziran 2011, 10:46:57
bin dosyası yükleme işinde birkaç trik var diye hatırlıyorum

burada açıklama yapmış muhittin kaplan
https://www.picproje.org/index.php/topic,14339.msg219509.html#msg219509

Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 24 Haziran 2011, 11:29:14
Eminimbende eproma bişeyler yükleyemediğim için görüntü alamıyorum. eeprom okunuyor ama içerisi boş bu yüzden ekranda bişeyler çıkmıyor.
Hala eprroma istediğim dosyayı yükleyemedim. İsiste epromun içine nasıl bakarım
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: muhittin_kaplan - 25 Haziran 2011, 01:17:13
isiste eepromun içerisine bakmak için debug modda çalıştırmanız yeterli. eğer debug modda çalıştırıdığınız halde (adım adım yada komut komut çalıştırma) göremiyorsanız
menüden Debug a Eeprom Data dan görebilirsiniz.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: Mucit23 - 27 Haziran 2011, 11:53:53
Hocam devreyi gerçekte denemek istiyorum fakat epproma gerçektede bir türlü bin dosyasını yükleyemedim. Bi hata alıyorum. Bununla ilgili bir konu açtım. Belki bilgisi olan biri vardır
Başlık: Ynt: Protonda SD kart kullanımı
Gönderen: Mucit23 - 16 Temmuz 2011, 20:15:27
Merhaba arkadaşlar. Yine ilginç bir sorunum var. Bugün glcd ile  bazı yaptığım uygulamaları deney setinde denemek istedim. Yaptığım uygulamalar isiste sorunsuz bir şekilde çalışıyor ama  gerçekte deneyince glcd saçmalıyor. Birçok deneme yaptım ve şu gözlenim lerim  oldu. Grafik lcd de resim basarken veya protonun kendi font dosyasıyla yazı yazarken hiçbir sorun olmuyor. Görüntü çok iyi. Pic güzel çalışıyor. Ama mesela kendi oluşturduğum font dosyalarıyla yazı yazarken yazılar yarım yamalak çıkıyor. Veya bazı geometrik şekileri (circle,box komutları ile) ekrana basarken sonra line veya plot komutu düzgün çalışmıyor. Yani line komutuyla ekrana çizgi veya eğri çizerken görüntü tam çıkmıyor. Bazı yerler eksik çıkıyor. Aynı şekilde plot komutuda öyle. Programda bir sorun olduğunu düşünmüyorum. Ben lcdden şüpheleniyorum. Acaba lcdmi bozuldu. Bu arada lcd winstarin(wg12864b)
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: smyomekatronik - 16 Temmuz 2011, 22:51:12
Mucit eprom ile resim göstermeyi başarabildinmi. Elimde tüm malzemeler olmasına rağmen kısmet olupta birtürlü deneyemedim.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: EMG81 - 17 Temmuz 2011, 00:17:54
Menü vs için yazılım yazmaya hiç uğraşma. MikroElektronika nın Visual GLCD programını kur. Program içerisinde herşeyi yapabildiğin gibi istersen dokunmatik butonlarla bile çalışabiliyorsun. Ayrıca sen sadece menüleri dizayn ediyorsun o sana C,Basic,Pascal şeklinde kod a dönüştürüyor.

Benim asıl mera ettiğim 128x64 pixel li bi Grafik LCD yi dikey olarak kullanabilirmiyim ?
Programala dili olarak C kullnıyorum. Elinizde LCD ekranını Sağa yada sola 90 derece Rotate yapabilen bir C kütüphanesi varmı ?
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: LukeSkywalker - 17 Temmuz 2011, 17:48:28
Dostum imajları yatay basarsın LCD'ye.
Kendi fontlarını oluşturup onları da yatay hale getirirsin olay biter..
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: EMG81 - 17 Temmuz 2011, 18:06:54
 :D

Evet zaten şuan böyle yapıyorumda hiç uğraştırmayan rotate özellikli bi library varmı diye merak ettim. Mesela Cihaz üzerinde Acc. olduğunu düşün ve Cihazın yere olan durumuna göre ekranı sürekli Rotate edebildiğini hayal et. Bu iyi bir özellik olurdu.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: LukeSkywalker - 17 Temmuz 2011, 18:46:16
evet güzel olurdu.
Başlık: Ynt: Protonda SD kart kullanımı
Gönderen: Mucit23 - 18 Temmuz 2011, 14:44:22
Mikroelektronikanin programına bi inceliyeyim. Bana çok fikir verir.  Peki sizce lcdmi bozuk yoksa başka bir sorunmu var. Gerçi yarın ıkitanedaha almayıdüşünüyorum ama merak ediyorum. Daha önce hiç böyle bir sorunla karşılaşmadım.
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: oooben - 11 Kasım 2014, 23:37:19
mucit23 hocam merhabalar  ben pbp biliyorum oldukçada kullanılırım. fakat winstar wg320*240 glcd elimde var ve (protonla da ilgileniyorum ama çok iyi sayılmam) protonla ancak 128*64 çalıştırılabilir . ben protonla 320*240 a print komutuyla yazı yazdırdım ama tanımlama da 240*128 tanımladım. ekranda yazı çıktı tamam ama biraz garip yani sanki aralarında boşluk var gibi " m e n u " gibi oldu.:)
ben şimdi de resim basmak istiyorum proteusta 128*64 e resim yüklemeyi başardım. ama çipsetleri farklı proteusta
320*240 ı test ederken onun yerine 240*128 le denedim ama laışmadı.
2 şey yapamadım
      1 ekrana basılacak resmi inc. yaparken 320*240 a ayarlayamıyorum bunun için saçma şeyler çıkıyor.
      2 gerçek devrede deneyemedim
swordfish e de baktım ama çok karışık geldi örnek bi uygulama bulamadım " c " bilmiyorum ne tavsiye edersiniz.
fastlcd ve bir program daha var sonu 1.2 diye bitiyo unuttum ismini onları kullandım .

iyi geceler...
Başlık: Ynt: Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma
Gönderen: ~ENES~ - 09 Haziran 2015, 11:08:19
mucit23 hocam... glcd ye 16 puntodan buyuk karaktr bastığın oldumu ? valla kafayı yiyecem bu gidişle bir türlü 16 dan buyuk font basamadım ekrana ekran saçmalıyor .. ne yapmam neleri incelemem gerekiyor sizce ?