glcd + tuş takılma problemi

Başlatan satilla, 12 Ekim 2010, 21:26:52

satilla

glcd uygulamsı yapıyorum daha 3 gun onceye kadar bişe yokken bi kaç satır ekleme yaptım bugün ondan sonra olan oldu

4 tane tuş var ve bundalardan bazılarına basınca takılı kalıyor
illa programda işlemden sonra tuşun bulundugu pini low'a çekmem gerekiyor

bu sorunu nasıl aşabilirm?

muhittin_kaplan

dah aaçıklayıcı sorular sorunuz keza anlatamadığınız bir sorunun cevabını alamazsınız

satilla

anlaşılmıyacak ne var anlamadım
bir tuşa basınca elimi çeksem dahi mcu tuşa hala basılıyormuş gibi çalışmaya dvm ediyor
sorunun programsal oldugu kesin çünkü pull down dirençleri bağladım ve daha once böyle bir sorunum yoktu
her tuş tara işlemin ardından pinleri low'a çekiyorum programda
çektiğim zaman sorun kalmıyor

muhittin_kaplan

Programı verseni bakardık ama ikinci mesajımıda "kod yada devre" verirseniz dah aaçıklayıcı olur diyorum.

satilla


muhittin_kaplan

Eminmisin ? Ben nede görmüyorum ?

satilla

kb boşa zamn kaybına neden oldum ilk msjımda koyacaktım fakat unutup koydum diye düşününce....

Include "PROTON_G4.INT"



PORTA=0
PORTB=0
PORTC=0
PORTD=0
PORTE=0
TRISA=1
TRISB=0
TRISC=0
TRISD=%00000001
TRISE=0


PortB_Pullups=0

 



Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  char    As Byte


Dim sag As PORTE.0
Dim sol As PORTD.0
Dim ok As PORTA.5
Dim geri As PORTC.1
Dim ileti As Byte

'*****RTC DS1302  TANIMLAMALARI*****

SCLK VAR PORTA.2
IO VAR PORTA.1
rst VAR PORTA.0


'*****RTC DS1302 DEĞİŞKENLERİ*****
GUN     VAR Byte
AY      VAR Byte 
YIL     VAR Byte
TARIH   VAR Byte
saata    VAR Byte 
DAKIKA  VAR Byte
SANIYE  VAR Byte
KONTROL VAR Byte
saat1 var Byte
saat2 var Byte
saat3 var Byte
saat4 var Byte
saat5 var Byte
saat6 var Byte
dakika1 var Byte
dakika2 var Byte
dakika3 var Byte
dakika4 var Byte
dakika5 var Byte
dakika6 var Byte





ileti3 var Byte
ileti2 var Byte


deg1 var Byte

SAYAC       VAR   Byte
SN          VAR   Byte
zaman1      VAR   Byte
zaman2      VAR   Byte
Dim gecenzaman As Byte

z1 var Byte
z2 var Byte
z3 var Byte
z4 var Byte
z5 var Byte
z6 var Byte


t1 var Byte
t2 var Byte
t3 var Byte
t4 var Byte
t5 var Byte
t6 var Byte

f var Byte

DelayMS 10

Clear
DelayMS 500
Cls
Low rst       
Low SCLK




SETTIME:
Print At 3,3,"SAAT : ",Dec2 saata,":", Dec2 dakika,":", Dec2 saniye
Print At 5,3,"TARIH :",Dec2 gun,":",Dec2 ay,":10"

DelayMS 200


Low sol
Low sag
Low geri 
Low ok


If sag=1 Then saata=saata+1
If sol=1 Then dakika=dakika+1
If ok=1 Then ilkayar
If saata=24 Then saata=0
If dakika=60 Then dakika=0
If geri=1 Then ayarok

DelayMS 10
GoTo SETTIME

ilkayar:
Print At 5,3,"TARIH :",Dec2 gun,"/",Dec2 ay,"/10"
DelayMS 200

Low sol
Low sag
Low geri 
Low ok

If sag=1 Then gun=gun+1
If sol=1 Then ay=ay+1
If gun=32 Then gun=0
If ay=13 Then ay=0
If geri=1 Then SETTIME
DelayMS 10
GoTo ilkayar

muhittin_kaplan

tanımlamaları neden VAR ile yaptınız ?

muhittin_kaplan

bu verdiğiniz kodları prton derliyormu ?
bende heryerde hata verdi, Font yok değişkenlerde hata var vs vs

satilla

derliyor hocam font en aşagıdaydı onu almadım kopyala yapıştır yaparken
derliyor hatta pratiktede çalışıyor ama tuşlar sapıtmış şekilde

değişkenleri basicte var ile tanımladıklarını görüyordum o yüzden var ile tanımladım

var ile dim arasındaki fark nedir?

pcb

#10
GCD de kullandığın pinleri butonlarda kullanma çakışıyor, butonları LOW yapma gereksiz, sadece dirençle 4,7-10k gibi GND ye bağla. Buton beslemesini (5V) 30-100 ohm gibi dirençlerle akımı düşür.
LCD de istediğin kısıma yazdıramıyorsan "Declare GLCD_CS_Invert 1 veya 0" olarak değiştir.

proteusda çalışıyor

Include "PROTON_G4.INT"

Declare GLCD_CS_Invert 1

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


PortB_Pullups   0

 



Dim  Xpos    As Byte
Dim  Ypos    As Byte
Dim  Addr    As Word
Dim  char    As Byte


        Dim sag As PORTA.0
        Dim sol As PORTA.1
        Dim ok As PORTA.2
        Dim geri As PORTA.3
        Dim ileti As Byte
        
        Input   PORTA.0
        Input   PORTA.1
        Input   PORTA.2
        Input   PORTA.3
        
        
	'LCD_DTPort = PORTD
	'LCD_RSPin = PORTC.1
	'LCD_ENPin = PORTE.0
	'LCD_RWPin = PORTC.0
	'LCD_CS1Pin = PORTE.1
	'LCD_CS2Pin = PORTE.2

'*****RTC DS1302  TANIMLAMALARI*****

SCLK VAR PORTC.4
IO VAR PORTC.5
rst VAR PORTC.6


'*****RTC DS1302 DEĞİŞKENLERİ*****
GUN     VAR Byte
AY      VAR Byte 
YIL     VAR Byte
TARIH   VAR Byte
saata    VAR Byte 
DAKIKA  VAR Byte
SANIYE  VAR Byte
KONTROL VAR Byte
saat1 var Byte
saat2 var Byte
saat3 var Byte
saat4 var Byte
saat5 var Byte
saat6 var Byte
dakika1 var Byte
dakika2 var Byte
dakika3 var Byte
dakika4 var Byte
dakika5 var Byte
dakika6 var Byte





ileti3 var Byte
ileti2 var Byte


deg1 var Byte

SAYAC       VAR   Byte
SN          VAR   Byte
zaman1      VAR   Byte
zaman2      VAR   Byte
Dim gecenzaman As Byte


z1 var Byte
z2 var Byte
z3 var Byte
z4 var Byte
z5 var Byte
z6 var Byte


t1 var Byte
t2 var Byte
t3 var Byte
t4 var Byte
t5 var Byte
t6 var Byte

f var Byte

DelayMS 10

Clear
DelayMS 500
Cls
'Low rst       
'Low SCLK




SETTIME:
Print At 5,0,"SAAT : ",Dec2 saata,":", Dec2 dakika,":", Dec2 saniye
DelayMS 10
Print At 3,0,"TARIH :",Dec2 gun,":",Dec2 ay,":10"

DelayMS 200


'Low sol
'Low sag
'Low geri 
'Low ok


If sag=1    Then saata=saata+1
If sol=1    Then dakika=dakika+1
If ok=1 Then ilkayar
If saata=24 Then saata=0
If dakika=60    Then dakika=0
If geri=1   Then    ayarok

DelayMS 10
GoTo SETTIME

ilkayar:
Print At 3,0,"TARIH :",Dec2 gun,"/",Dec2 ay,"/10"
DelayMS 200

'Low sol
'Low sag
'Low geri 
'Low ok

If sag=1 Then gun=gun+1
If sol=1 Then ay=ay+1
If gun=32 Then gun=0
If ay=13 Then ay=0
If geri=1 Then SETTIME
DelayMS 10
GoTo ilkayar

ayarok:
DelayMS 400
goto SETTIME

Include "font.inc"


satilla

bende ilk önce lcd ile karışbileceigni düşündüm ve g4 inc dosyasına bi daha baktım fakat porta'ya baglı bir buton sapıtabiliyorken g4'te a portuyla ilgili bir tanımlama bulamadım

4.7 k ile gnd ye cekmiştim zatn daha once belirttim zatn pcb üzeirndeki devreydi ancak biraz kodla oynayınca böyle bir sorun cıkardı...

pcb

#12
Dim sag As PORTE.0 ----->LCD_ENPin = PORTE.0
Dim sol As PORTD.0------->LCD_DTPort = PORTD
Dim geri As PORTC.1------>LCD_RSPin = PORTC.1

butonlarla---glcd çakışıyor

buton pinlerini LOW yaparsan ve beslemeyi 5V verirsen bir nevi kısa devre yapmış olursun, işlemci resetlenir tekrar başlar, port da yanabilir.

satilla

hocam g4 ün içini ben değiştirdim
kendime göre uyarladım

portlar yazılımsal olarak high da kalıyor bende yazılımsal olarak lowa çekiyorum bunda bir sorun çıkacagını sanmıyorum

başka fikriniz varmı

pcb

yeni düzenlediğin programı G4 ile birlikte gönderirsen bakarız.