I2C LCD kullanımı

Başlatan alien876, 18 Temmuz 2017, 21:17:15

ete

Cemilsivas,
Bu programın çalışacağını sanmıyorum.
Bir çok neden var ama bunların başında LCD ye verilen bilgilerin 4+4 formatında yazılması ve senin kod'un bu kurala uymaması.
Dikkat edersen, LCD_WRITE komutunu icra eden kod içinde iki adet IF komut satırı ve altında bunlara ait kodlar yer alıyor. Bunlardan ilki yazılacak bilginin ilk 4 bitini yazdırıyor. Sonraki if satırı ise aynı bilginin sonraki 4 bitini yazdırıyor. Sen gosub lcd_write_ komutunu bir kere veriyorsun ve bu durumda yazılacak bilginin yalnızca bir kereliğine ilk 4 bitini LCD ye vermiş oluyorsun. Peki ikinci 4 biti kim verecek? bunu veremediğin içinde çizgiden başka bir şey göremiyorsundur muhtemelen.

Orjinal kod direk LCD_WRITE komutunu hiç kullanmıyor. Bu işi LCD_WriteBuff komutuna yaptırıyor. Bu komut nibble (4 er bitlik parçaları) ayarlayıp yazdırıyor.
LCD_WriteBuff komutunda pek çok işlev var. Yazdırılacak bilgi boyutundan tut da yazdırma modlarına kadar her şey burada ayarlanıyor. Belki üzerinde çalışırsan bir sonuç alabilirsin ama bana kalırsa derleyici 3.x sürümünü edinmeye çalışsan daha uygun olacak. Sonsivri bu işin kaynağı orayı araştır.


Ete

cemilsivas

Teşekkür ediyorum hocam. En kısa zamanda pickit 3'e geçeceğim. Artık kendimizi yenilememizin zamanı geldi.:-)

onurinci

 
 Pickit 3 ile alakalı değil derleyiciyi (Compiler) PBPX 3.1.6.4 versiyonuna yükselteceksin.. buda gıcık

 64 bit makina istiyor.

cemilsivas

#33
Onur İnci;

Hocam ben de onu diyecektim aslında. Sanırım benim pbp derleyicim(doğru mu kullanıyorum ifadeyi bilmiyorum.) eski. Bilgisayarım x64 tabanlı. Link konusunda yardımcı olabilir misiniz?

onurinci

arkadaşım Sonsivri.com dan indirip makinama kurmuştu. çalışabilmesi için 1Way diye bir program daha kurmuştu. onu nerden indirdi bilmiyorum. benim Sonsivri üyeliğim iptal edilmiş , yoksa seve seve yardım ederdim..

ei

Bir ekleme: Sonsivri'nin adresi https://www.sonsivri.to/

cemilsivas

Malesef üyelik referans istiyor. Ben de üye olamadım. Sitede bir arkadaş bazı dosyalar paylaşmış. Onları deneyim. Yoksa eski sistem devam edeceğim.

istinaf duvarı

#37
C'de ifdef ve ifndef diye bir koşula bağlı derleme belirteçleri var.If defined ve if not defined'in kısaltması.
#ifndef a
#define a b
#endif
şeklinde bir kullanımı var. Derleyici çalışırken ifndef'e geldiğinde a'nın belirlenip belirlenmediğini kontrol eder. a daha önce belirlenmişse burayı atlar, belirlenmemişse endif'e kadar olan satırları derler. Sizin kullandığınız dillerde bunun karşılığı ne bilmiyorum.

Varsayılan I2C adresini if not defined içine alırsanız, kullanıcı bir adres girmezse varsayılan I2C adresi aktif olur. Girerse kütüphane içerisindeki adres yerine kullanıcının girdiği yeni adres aktif olur.

Bunun örnek uygulamasını daha önce paylaştığım I2C LCD kütüphanesinde kullandım. Orada kullanıcı bir adres girmediğinde varsayılan adres olan 0x40 adresi aktif olmakta. Aynı şekilde kullanıcı ekran ölçülerini girmezse 16x2 ekran kullanıldığ varsayılmakta.

Adres konusunda bu şekilde yapabilir, kütüpheneyi esnek hale getirebilirsiniz.

Powered by EzPortal
▲