Grafik LCD de Menü oluşturma ve Ekranda butonlar yapma

Başlatan Mucit23, 03 Haziran 2011, 07:10:21

Mucit23

Ç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.

JKramer

Watchdog timer açık, ayarladığınız zamandan önce bu timer'ı sıfırlıyor musunuz?

Mucit23

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.?

Murat Mert

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
mert07

smyomekatronik

Esselamu Aleyküm

Umut KAZANÇ hocamızım kendi sitesinde GLCD Resim/Yazı Kod Çevirici diye bir proje var. Projeyi incelemenizi öneririm.

sezgiin

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.

Mucit23

Arkadaşlar teşekkür ederim sorunu çözdüm. "Sezgiin" arkadaşa teşekkürler..

Mucit23

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

smyomekatronik

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.

Mucit23

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.

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.

smyomekatronik

Mucit devre proteus da çalışmıyor boşuna uğraşma.

Mucit23


M_B

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

İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Mucit23

hocam proteustada eeproma hexi yükler gibi bin dosyasını gösteriyorum. Anlam veremedim :S

smyomekatronik

Çünkü ben de çalıştıramadım. Proteus da çalışmadığını umut hocam kendisi söyledi. Devreyi fiziksel olarak denemen lazım.