GLCD Port Tanımlaması

Başlatan oongit, 14 Temmuz 2013, 18:17:53

oongit

Merhaba Arkadaşlar...

Elimde ATM12864D GLCD mevcut. Ben Bu GLCD'nin pinlerini, 18F452'nin istediğim portuna bağlayabilir miyim? Mesela Data pinleri tek bir portta mı olmak zorundadır. Ya da diğer GLCD Kontrol pinlerini istediğim portun istediğim bitine bağlayamaz mıyım?

Teşekkürler...

Maxim

data pinleri aynı port olmalı, mesela portB
diğerleri fark etmez

hasankara

bende 2x16 karakter lcd için kendime kütüphane yaptım. port halinde değilde bit bit tanımlatma yapabiliyorum. ancak kütüphane port şeklinde işlem yapıyorsa kütüphaneye müdahale etmen gerekebilir.

case 0:	buff=c;  rs=1; e=1; //rw=0; 
		db7 = bittest(buff,7);	db6 = bittest(buff,6);
		db5 = bittest(buff,5);	db4 = bittest(buff,4);
		e=0;mlt=1;break;

bu kod da port a gönderilmesi gereken bilgiyi tanımlı olan db7 db6 db5 db4 bitlerine göndermiş oluyorum.

oongit

Alıntı yapılan: Maxim - 14 Temmuz 2013, 19:44:14
data pinleri aynı port olmalı, mesela portB
diğerleri fark etmez
Anladım üstadım teşekkür ederim.Mesela;
GLCD'nin D0 pini PIC'in D0 pinine
GLCD'nin D1 pini PIC'in D1 pinine bağlamak yerine bunun tam tersini de yapabiliyor muyuz? Yani GLCD'nin D0 pinini PIC'in D7 pinine gibi, tam tersine yani... Biraz saçma oldu sanırım ama tam olarak yapmak istediğim bu...

Maxim

benim bildiğim kadarı ile öyle birşey yok, öyle bir ayarda yok

oongit

Teşekkür ederim Maxim... Artık PCB'yi buna göre tasarlayacağım, yapacak bir şey yok... Yardımlarınız için tekrar teşekkürler...

hasankara

#6
aslında yapılacak çok zor değil. kütüphane içinde port eşitlemesi olan bütün yerleri tespit edip bunları bitler halinde yükleyenleri ile yer değişeceksin.
header kütüphanesinin içine
#define rs RA6 
//#define rw RC1
#define e  RA7 

#define db7 RB5
#define db6 RB1
#define db5 RC7
#define db4 RC0
#define bittest(var, bitno)(var&(0b00000001 << (bitno)) ? 1 :0	)



şeklinde istediğin bitleri tanımlayacağın ön tanımlamalar eklersin.
#define port PORTB
şeklinde port tanımlanıyorsa, kütüphane içerisinde "port=deger;" gibi kısımların tümünü tespit edeceksin. komutunun yerine aşağıdaki sıralı kodları koyacaksın.
        db7 = bittest(deger,7);	db6 = bittest(deger,6);
        db5 = bittest(deger,5);	db4 = bittest(deger,4);


değişkenin düşük 4 bitini gönderiyorsa
        db7 = bittest(deger,3);	db6 = bittest(deger,2);
        db5 = bittest(deger,1);	db4 = bittest(deger,0);

kodları koyacaksın.

yapamaz isen kütüphaneyi koyarsan buraya o şekilde yardımcı olabilirim.

mesaj birleştirme:: 15 Temmuz 2013, 00:22:54

bu arada yeni farkettim konu proton+ içerisine açılmış :-[  ben kaptırmış gidiyorum:D

Maxim


hasankara

sormayın hocam şu aralar dalgınım bir miktar :-[ . malum köyde doğru düzgün masada yok öyle laptoptan kanbur bir şekilde vakit geçiriyorum.

islergucler

Tam ters sırada atama yapılabilir. Farklı portlardan pinlere de atama yapılabilir. Tabi yazılım biraz uzar.  Yazılımda zorlanacaksanız tek porta düzgün sıralamak daha iyi olur.

oongit

Yanılmıyorsam eğer; LCD bağlamak için DECLARE komutu kullanmadan bağlanabilmesi için ön tanımlı varsayılan değerler vardı (emin değilim)... GLCD için de ön tanımlı değerler var mıdır Proton'da... Yoksa bu PBP için mi geçerliydi?