avatar_Hattuşa

GLCD sorunu

Başlatan Hattuşa, 06 Aralık 2012, 09:27:42

Hattuşa

slm;
arkadaşlar 18f4520 ile GLCD sürmeye çalıştım, isisde aşağıdaki hatayı veriyor, ne yaptımsa bir türlü çözemedim, bu hata neyden kaynaklı olabilir. OSC config ayarı ile alakalı olabilir diye düşünüyorum ama hangi kısımla alakalı bilmiyorum, yardımcı olursanız memnun olurum.

ete

Ne olduğunu anlamak için şemayı ve programıda görmemiz gerekirdi.
Bu hata genelde giriş olarak ayarlanmış pine çıkış emri verildiğinde görülür.

Ete

Hattuşa

hocam kod bu
Device 18F4520
Xtal =10
Config_Start
   OSC = HSPLL ; HS oscillator, PLL enabled (Clock Frequency=4 x FOSC1)
   PWRT = On ; PWRT enabled
   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
   Debug = OFF ; Background debugger disabled, RB6 and RB7 configured as general purpose I/O pins
Config_End
Declare PLL_Req TRUE '40mhz

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


Declare LCD_DTPort =PORTD
Declare LCD_RSPin =PORTC.5
Declare LCD_ENPin =PORTC.4
Declare LCD_RWPin =PORTC.6
Declare LCD_CS1Pin =PORTC.0
Declare LCD_CS2Pin =PORTC.1
Declare LCD_Type =GRAPHIC
Internal_Font =On
' Font_Addr = 0
'Declare GLCD_CS_Invert =0
Declare GLCD_STROBE_DELAY =50
Cls         'Ekranı temizler ve 30 ms gecikme sağlar
DelayMS 50


'ADCON0 =%00000011
'ADCON1 =%00001100 '3 kanal secildi an0,an1,AN2
'ADCON2 =%10010010

INTCON2.7 =1
All_Digital =NO
Symbol MeNu =PORTE.0
Symbol GrOuNd =PORTE.1
Symbol YuKarI =PORTB.6
Symbol AsAgI =PORTB.7
Symbol EnTeR =PORTA.5
Symbol LgT =PORTA.3
'Symbol LEDA =PORTE.1
'Symbol LEDB =PORTE.2
'Output LEDA
'Output LEDB                           
Output LgT
Input MeNu
Input GrOuNd
Input YuKarI
Input AsAgI
Cls
DelayMS 100
LgT =0
BAsLa:
Print At 0,1,"LAMBA KONTROL"
DelayMS 100

If MeNu =0 Then
'while menu ==0 :WEND
LgT =1
Print At 1,1,"LAMBA YANDI"
DelayMS 100
Else
LgT =0
EndIf
If GrOuNd =0 Then
'WHILE ENTER ==0:WEND
LgT =0
Print At 1,1,"LAMBA SONDU"
DelayMS 100
Else
LgT =1
EndIf

GoTo BAsLa

End
Include "FONT.INC"


isis şemayıda ekledim, yaw hocam bazen insanın nutku duruyor, eklediğim led bile sağlıklı çalışmıyor, nedenini anlamadım gitti

ete

Zaten kendin D0 -D7 arasını GLCD data pini olarak isimlendirmişsin. Sistem buraya kafayı takmış durumda.
Bu bence protonun azizliği. Aynı pinler GLCD den data okumak içinde kullanılır. Dolayısıyla o sırada pinler input olmalıdır.
Verine mesaj bir hata mesajı değil bir ikazdır. Bence kafanı takma. Ziar program çalışıyor.
Deneme yapmak için TRISD=%00000000 komutunu kaldır istersen bakalım ne yapacak.

Ete

Hattuşa

hocam isisin azizliğimi bilmiyorum ama koda dikkat ettiniz se ledi de sağlıklı yakamadım gitti ya hocam bu kadar basit yere takılıom ya ne desem boş...

Hattuşa

#5
hocam led sorununu çözdüm, all_digital registerinden kaynaklıymış  ;D
insanın dikkatinden kaçan ayrıntılardan kaynaklı, ama hala isis GLCD uyarısı veriyor, yani isisde direk bağladım işlemciye bağlantıları, ayrıca tris portd yide dediğiniz gibi yaptım değişen bişey yok uyarı aynı

ete

Led sıralı şekilde yanıp sönüyor aslında. Ama programa bakarsan led işini iki ayrı şarta bağlamışsın.
Şartın birisi yakar diğeri söndürebilir. Bu tür uygulamalar sakıncalıdır. İpin ucunu kaçırırsın.
Ya led açısından değerlendirip tek komutla halletmen yada tek şartla işi yürütmen gerekir.

Ete

Powered by EzPortal