40 Mhz PLL ile Grafik lcd sürme yardım

Başlatan ınsert, 23 Şubat 2012, 02:24:32

ınsert

Merhaba arkadaşlar. Protonda 18F4520 ile grafik lcd uygulaması yapmaya çalışıyorum.
Fakat PLL yapınca yani 40 mhz ile çalışınca isiste grafik lcd de saçma sapan yazılar çıkıyor.
Bir tek 4 mhz de isiste düzgün çalışma elde ediyorum.Deneme kodunu aşağıya eklemeye çalıştım umarım becebilmişimdir.
PLL yaparak 40 mhzde proton ile grafik lcd yi düzgün bir şekilde nasıl sürebilirim?Bunun başka bir yolu varmı? Teşekkürler.

Device = 18F4520
'*************CRYSTAL**************************************
XTAL 10
'*************LCD BAĞLANTI AYAKLARI************************
LCD_DTPORT = PORTD
LCD_RSPIN = PORTB.2
LCD_ENPIN = PORTB.5
LCD_RWPIN = PORTB.4
LCD_CS1PIN = PORTB.0
LCD_CS2PIN = PORTB.1
LCD_TYPE = GRAPHIC
INTERNAL_FONT = On
FONT_ADDR = 0
Declare GLCD_CS_INVERT OFF '- OFF, 1 or 0
Declare GLCD_STROBE_DELAY = 10
'**************FUSE CONFIGRASYONU**************************
CONFIG_START
    OSC = HSPLL ; HS Oscillator
	FCMEN = off ; Failsafe Clock Monitor Disabled
	IESO = OFF ; Int/Ext Oscillator Switch Over Disabled 
	PWRT = On ; Power Up Timer Enabled
	BOREN = OFF ; Brownout Reset Disabled
	WDT = OFF ; Watchdog Timer Disabled
	MCLRE = On ; MCLR enabled
	LPT1OSC = OFF ; T1 Oscillator Disabled 
	CCP2MX = PORTC ; CCP2 Mux Muxed with RC1
	STVREN = On ; Stack Overflow Reset Enabled
	LVP = OFF ; Low Voltage ICSP Disabled 
	XINST = OFF ; XINST Disabled
	PBADEN = OFF; PORTB(4:0) as digital i/o
	Debug = OFF ; Background Debugger Disabled 
	CP0 = OFF ; Code Protection Block 0 Disabled 
	CP1 = OFF ; Code Protection Block 1 Disabled 
	CP2 = OFF ; Code Protection Block 2 Disabled 
	CP3 = OFF ; Code Protection Block 3 Disabled 
	CPB = OFF ; Boot Block Code Protection Disabled 
	CPD = OFF ; Data EEPROM Code Protection Disabled 
	WRT0 = OFF ; Write Protection Block 0 Disabled 
	WRT1 = OFF ; Write Protection Block 1Disabled 
	WRT2 = OFF ; Write Protection Block 2 Disabled 
	WRT3 = OFF ; Write Protection Block 3 Disabled 
	WRTB = OFF ; Boot Block Write Protection Disabled 
	WRTC = OFF ; Configuration Register Write Protection Disabled 
	WRTD = OFF ; Data EEPROM Write Protection Disabled 
	EBTR0 = OFF ; Table Read Protection Block 0 Disabled 
	EBTR1 = OFF ; Table Read Protection Block 1 Disabled 
	EBTR2 = OFF ; Table Read Protection Block 2 Disabled 
	EBTR3 = OFF ; Table Read Protection Block 3 Disabled 
	EBTRB = OFF ; Boot Block Table Read Protection Disabled
CONFIG_END
Declare PLL_Req TRUE '40mhz
'**********GIRIS-CIKIS TANIMLAMALARI******************        
TRISA=%00000000 :PORTA=0
TRISB=%00000000 :PORTB=0
TRISC=%00000000 :PORTC=0
TRISD=%00000000 :PORTD=0
TRISE=%00000000 :PORTE=0

DelayMS 200 :Cls
Basla:
  Print At 1,1, "DENEME"
  GoTo Basla

Include "FONT.INC"

gokhangokcen

xtal hızını 40 tanımlayıp deneme yapar mısın? tahminimce proton fuse ayarlarını pek işleve almıyordu isis ortamında
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

ınsert

Xtal hızını isiste 40 yapıp denedim fakat değişen birşey olmuyor.

gokhangokcen

ozaman help'inde bulunan declare tanımlamaları ile lcd ye bastığın data hızlarını yavaşlatman gerekiyor ya da mümkünse düşük frekansta bir kristal ile çalışman en doğrusu bir kaç örnek olarak;
DECLARE LCD_COMMANDUS 1 to 65535
DECLARE LCD_DATAUS 1 to 255
DECLARE GLCD_STROBE_DELAY 0 to 65535
Bildiğini paylaşmak, Allah'ın verdiği öğrenme yeteneğinin zekatıdır.

teknikelektronikci

sirf isisde degil büyük bir ihtimal ile gercek hayatada ayni problemi yasayacaksiniz
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!

ınsert

Cevaplarınız için teşekkürler. Gerçek hayattada problem yaşamamam için ne yapabilirim?
Proton da sanırım yüksek hızda grafik lcd kullanımı zor oluyor?

teknikelektronikci

Alıntı yapılan: ınsert - 23 Şubat 2012, 11:10:58
Cevaplarınız için teşekkürler. Gerçek hayattada problem yaşamamam için ne yapabilirim?
Proton da sanırım yüksek hızda grafik lcd kullanımı zor oluyor?
ben cozum bulamadim sahsen hii gerci evet bir cozumu war winstar marka grafik lcd kullanin sorun cozulsun isisde ise glcd nin ayarlarina girip odaki tepki süresini dusurun
selamlar
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!

Mucit23

Ben 40 Mhz ile gerçektede çalıştıramadım glcd yi. Bi aralar epeyce bu işe kafa yorum işin derinlerine inmiştim ama çözümü bulamadım..
Ben birşey sorayım. Pic İle çalışırken Kesme normalde çalışıyorken yazılımla İstediğim yerde INTCON registerinin 7. bitini 0 yaptığımda kesmenin tüm kesmelerin durması gerekmezmi. Normalde Tüm Global kesmeler bu bit ile açılıp kapanıyor. Bu bit açıyorum ama yazılımla bu biti kapattığımda kesme kapanmıyor. Çalışmaya devam ediyor. Bunun sebebi ne olabilir.

GreeN

DECLARE GLCD_STROBE_DELAY 10

satırını lcd declare satırlarına ekleyip dener misin? Bu şekilde düzeltmiştim.
Terörü Lanetliyoruz.

cemilkendir

lcd ye okuma ve yazma fonksiyonlarında geçikme eklersen olur örneğin 4 mhzde 1 cycle bekliyorsan 40mhz de 10cycle bekleyecek şekilde yap ben bu sorunu bu şekilde çözmüştüm
ancak ben ccs c de yazıyorum programı

ınsert

Cevaplarınız için herkese çok teşekkürler.Green arkadaşım demek istediğini tam olarak anlayamadım.Biraz daha açabilirmisin?
Cemilkendir arkadaşım protonda sanırım okuma ve yazma fonksiyonlarında oynama yapılamıyor.Bunun için ccs c öğrenmeyi düşünüyorum.

GreeN

Alıntı yapılan: ınsert - 24 Şubat 2012, 00:24:48
Cevaplarınız için herkese çok teşekkürler.Green arkadaşım demek istediğini tam olarak anlayamadım.Biraz daha açabilirmisin?
Cemilkendir arkadaşım protonda sanırım okuma ve yazma fonksiyonlarında oynama yapılamıyor.Bunun için ccs c öğrenmeyi düşünüyorum.


        DECLARE LCD_TYPE = GRAPHIC
        DECLARE LCD_INTERFACE  8         
        DECLARE LCD_DTPIN      PORTD.0
        DECLARE LCD_ENPIN      PORTB.4
        DECLARE LCD_RSPIN      PORTB.2
        DECLARE LCD_RWPIN      PORTB.3
        DECLARE LCD_RSTPIN     PORTB.5
        DECLARE LCD_CS1PIN     PORTB.0  ; 1
        DECLARE LCD_CS2PIN     PORTB.1  ; 0
        DECLARE GLCD_CS_INVERT off

        declare GLCD_STROBE_DELAY 10 'BU SATIRI EKLE DEMEK İSTEDİM.

eğer yine çalışmaz ise değeri biraz artır.
     
Terörü Lanetliyoruz.

aslan_korhan

Proteus'da gerçekten 4MHz'den sonra GLCD uygulamalarında sorun çıkabiliyor.
20MHz'de Proton'da çalışmayan devre gerçekte çok rahat çalışıyor.
Ben Proteus denemelerimi yaparken 4MHz kullanıyorum ve sonradan hız arttırıp gerçek devreyi kuruyorum.
Çok kritik bir devre olmadıktan sonra bir sorun çıkmıyor.
Yani pek fazla Proteus'a güvenme...
Dünyada 10 çeşit insan vardır. Binary bilen ve bilmeyenler.

ınsert

Devreyi 20 mhz de gerçektede kurdum ve denedim.Yazılar flan düzgün çıkıyor.
Fakat plot komutu ile ekrana dikdörtgen çizmiyor.Dikdörtgenin sadece alt uzun kenarı çıkıyor.
Diğer kenarları çıkmıyor.4 mhz e düşürüp denediğim zaman dikdörtgen tam olarak çıkıyor.
Bunu neden yapabilir? Teşekkürler.

ınsert

Arkadaşlar bir türlü protonda yüksek hızda düzgün çalışma sağlayamadım. Yok mu bunun başka bir yolu?