18f4520 ve glcd problemi

Başlatan m.uslu, 04 Ekim 2013, 20:38:20

m.uslu

Öncelikle soruları yanıtsız bırakmayıp pic ile programlamaya yeni başlayan kişilere yardımcı olan tüm arkadaşlara teşekkür ediyorum.

18f4520 ve Winstar 12864B ile ilgili ilginç sorunlarım var.

1 - mikropro26 ve K182 bord ile pic'e yükleme yapıyorum. Programı, config_start - config_end bloğu ile derleme yaptığımda mikropro26 hata veriyor (Error in hex file - FUSE line 380  ) ve hex dosyasını yüklemiyor.

glcd test için ufak bir program hazırladım ek olarak gönderiyorum. ISIS 'te normal çalışıyor. Ekranın  tamamını A harfi ile doldurması gerekirken, ilk sütunlar tek çizgi, sonraki sütunlar her ne kadar harfi gösterecek şekilde olsa da ekran kayıyor farklı yerlerde farklı şeyler yazıyor. (Her harfte aynısını yapıyor, resim basmayı denedim sonuç benzer.).

1 haftadır uğraşıyorum, elimde 2 adet glcd var. Biri tinsharp TG12864B-28 bu uyum sağlamıyor diye winstar  WG12864B aldım. Fakat, her ikisinde de aynısını yaptı.

2 adet 18f4520 , 2 adet farklı glcd, 4 - 8 - 20 Mhz. kristal ile denemelerimi yaptım, fakat hepsinde aynı sonucu aldım. config_start - config_end bloğu olmadan derleme yaptığım için mikropro26 üzerindeki fuse ayarlarını değiştirerek denemeler yaptım sonuç aynı.

Yardımcı olursanız sevinirim. Teşekkürler.

Hattuşa

slm arkadaşım;
öncelikle dediğin gibi isisde kod çalışıyor, ekran görüntüsüne göre bence glcd ile  4520 arasındaki bağlantılarda sorun olabilir, ayrıca fuse ayarların verdiğin resme göre hatalı, mesela isisde MCLR bacağı aktif fuse de pasif, fuse de xtal HS (4Mhz üstü) gözüküo isisde 4 mhz XT olmalıydı vb.
fuse configuratoru ile derleyicide fuse ayarlarını yapıp yükleme olmuyor mu?
ekte fuse ayarları ile ilgili düzenleme mevcut işine yararsa;
Device = 18F4520
Config_Start
   OSC = XT ; XT oscillator
   FCMEN = OFF ; Fail-Safe Clock Monitor disabled
   IESO = OFF ; Oscillator Switchover mode disabled
   PWRT = OFF ; PWRT disabled
   BOREN = OFF ; Brown-out Reset disabled in hardware and software
   WDT = OFF ; WDT disabled (control is placed on the SWDTEN bit)
   MCLRE = On ; MCLR pin enabled; RE3 input pin disabled
   LPT1OSC = OFF ; Timer1 configured for higher power operation
   PBADEN = OFF ; PORTB<4:0> pins are configured as digital I/O on Reset
   STVREN = OFF ; Stack full/underflow will not cause Reset
   LVP = OFF ; Single-Supply ICSP disabled
   XINST = OFF ; Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
   Debug = OFF ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
Config_End


Xtal 4

Declare PLL_Req false
Declare All_Digital= TRUE             
Declare LCD_DTPort = PORTB                         
Declare LCD_RSPin = PORTA.1               
Declare LCD_ENPin = PORTA.0               
Declare LCD_CS1Pin = PORTA.3               
Declare LCD_CS2Pin = PORTA.2             
Declare LCD_Type =  GRAPHIC
Declare Internal_Font = On                 
Declare Font_Addr = 0               
Declare GLCD_CS_Invert =0
Declare GLCD_STROBE_DELAY = 100
DelayMS 100

TRISA =%00000000  :PORTA =0
TRISB =%00000000  :PORTB =0
TRISC =%00000000  :PORTC =0
TRISD =%00000000  :PORTD =0
TRISE =%00000000  :PORTE =0

CMCON =7

Symbol a = PORTD.1

High a

Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  Char    As Byte
Cls
DelayMS 200
basla:

       For Ypos = 0 To 7
         For Xpos = 0 To 20
             Print At Ypos,Xpos,"A"
         Next
     Next

bitti:

GoTo bitti
End
Include "font.inc"

m.uslu

Yanıtınız için teşekkür ederim.

RW bacağını şemadaki gibi gnd ye bağlıyordum. Hiç de değiştirmedim :)

Forumu biraz daha ayrıntılı inceleyince RW bacağını pice bağlayıp, Declare  LCD_RWPin diyerek tanımlama yapıldığını fark ettim.

18f4520 'ye yükleme yaparken, aynen yazdığınız gibi powerup timer haricindeki herşeyi disable yaparak pic'e yükleme yaptım.

LCD 'nin RW bacağını 18f4520 'ye bağlayarak

Declare   LCD_RWPin = PORTA.4

satırını da ekleyince sıkıntı kalmadı.

Yardımlarınız için teşekkür ediyorum.

tarumgizgör

slm;
benimde bu benzer bir sorunum var yardımcı olursanız sevinirim.
soruna gelecek olursa glcd ye 1.satıra bir yazıyı yazdırıyorom isis ortamda simile ettimde ekranın el alt taraf yazdırıyor.
gerçekte devre üzerinde yazması gereken yerde yazıyor.
isis de neden böylke oluyor anlayamadım...

Powered by EzPortal