Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

4 bit lcd sorunu

Başlatan Erhan YILMAZ, 20 Eylül 2009, 06:39:11

Erhan YILMAZ

öncelikle hayırlı bayramlar arkadaşlar  hitechin kendi kütüphanesinde bulunan lcd dosyasında lcdnin rs,e,rw uçlarını data pinleriyle aynı pine bağlayınca lcd çalışmıyor yani portb4-7 data pinleri bağlı ise portb0-4 e kadar olan pinlere rs,e,rw pinleri bağlayınca görüntü gelmiyor diğer türlü ise sorun yok komut gönderme rutinlerini inceledim dataları andleyip porta gönderiyor sorunun ondan olabileceğini sandım değiştirdim olmadı hatta bit bit gönderdim yani RB7=DATA,7;RB6=DATA,6 gibi yine sorun aynı bir sürü yöntem denedim sorun aynı birde programda RB7=c<<3 gibi tanımlamalarda hata falanda vermeyince soğudum hitechden programda bir sorun olabilir diye düşünüyorum hitide'de yazıyorum programı elinde sağlam bir 2x16 lcd kütüphanesi olan varsa paylaşırsa çok makbule geçer olmadı ccs ile yazıcam kodları

Erhan YILMAZ

Dostum senin uygulamalarındaki lcd dosyasını da denedim fakat sonuç aynı hitide programınıda beğenmedim ccs basicten:) devam edim onda esnek bir lcd dosyası bulmuştum bit bit yönledirebilen onunla yazarım artık bir arada cc5x göz atarım artık ona da iyi diyorlar ilgilendiğin için sağol

Erhan YILMAZ

hazırcılıktan değilde kodlar çok uğraştırdı beni denemediğim yöntem kalmadı lcd data portb4-7ye bağlı diğerleri porta0-1 bağlı sorunsuz çalışıyor rs-e pinlerini portb0-1 e alınca gelmiyor görüntü data bitlerini bit bit verdiğim hatta asm yazdım içerisinde yine aynı sorun hatta programda asm yazarken tanımlamadığım değişkeni kullandım ona bile hata vermedi bilmiyorum hitechin yazılımında da sorun olabilir gözüm tutmadı hitideyi

M_B

tamirci_erhan hocam;
FxDev için soyle demişsin.
Alıntı yapılan: "tamirci_erhan"Dostum senin uygulamalarındaki lcd dosyasını da denedim fakat sonuç aynı hitide programınıda beğenmedim ccs basicten:) devam edim onda esnek bir lcd dosyası bulmuştum bit bit yönledirebilen onunla yazarım artık bir arada cc5x göz atarım artık ona da iyi diyorlar ilgilendiğin için sağol
peki hocam
https://www.picproje.org/index.php/topic,25796    linktekini denedin mi.
Ben denedim ve çalıştı.

Belki Hi-Tech C kullanmiyacaksınız veya sorununuzu oyle veya boyle baska bir derleyici ile cozdunuz.
Ben burda sorunun cozumunun oldugunu, cozulduğunu gostermek için msj yazdım.

Teşekkürler
Mehmet
İmkanın sınırlarını görmek için imkansızı denemek lazım.                                                             Fatih Sultan Mehmet

Erhan YILMAZ

ccs ile başlamıştım yazmaya ama birde bunu denim ilgin için sağol

papylon

@FxDev, Dersleriniz ile birlikte verdiğiniz LCD kütüphanesinde sanırım gözden kaçırdığınız, @tamirci_erhan'ın da bahsettiği küçük bir mantıksal hata var.

Sizin derslerinizle işe koyulana kadar C'nin C'sinden bile anlamıyordum :D  . Sizin derslerle işe başlayıp biraz da kitap kurcalayınca, az da olsa kavramaya başladım ve ISIS de yaptığım simülasyonlar da gördüm ki, verdiğiniz LCD kütüphanesinde gözden kaçan küçük bir mantıksal hata var. Şöyle ki;

Mesela PortB'nin yüksek 4-bitini LCD'ye ayırdık, düşük 4-bitine de LED bağladığımızı ve programın başında da LED'leri HIGH'a çektiğimizi yani yaktığımızı varsayalım. Ama LED'lerin yanmadığını göreceksiniz. Çünkü LCD'ye Data gönderdiğimizde PortB'nin düşük 4-biti, Kütüphanede ki küçük mantıksal hatadan dolayı Sıfır'a çekiliyor.

Hatalı olan kısmın bir bölümü aşağıda;
lcd_port = ( c & 0xF0 );
	e=0;
	lcd_busy();
	e=1;
	lcd_port = ( (c & 0x0F)<<4 );


Yukarıda yazılan Kod şu şekilde değiştirildiğinde düşük 4-bit de bulunan sorun ortan kalkıyor.

lcd_port = ((c & 0xF0) | (lcd_port & 0x0F));
	e=0;
	lcd_busy();
	e=1;
	lcd_port = (((c & 0x0F) <<4) | (lcd_port & 0x0F));


Bende, sizlerden öğrenip de becerebildiğim kadarıyla kendi LCD kütüphanemi yazmaya karar verdim,
4-bit için Busy flag okumalı ve Busy flag okumadan,
8-bit için Busy flag okumalı ve Busy flag okumadan gecikme rutinleri ile olmak üzere 4 adet LCD kütüphanesi yazdım ve aşağıdaki linkten indirebilirsiniz.

http://rapidshare.com/files/284983020/HI-TECH_4-8bit_LCD.rar.html

papylon

Bu arada verdiğiniz dersler için çok teşekkürler.
Sanırım anlattığınız dersleri epeyce anlamışım :D

orhanc

Alıntı yapılan: FxDev - 26 Eylül 2009, 02:07:45
Kendi denemelerimde daha iyi bir kütüphane kullanıyorum. Onun için çift porttan sürülen LCD'nin çalışması kafi idi benim için :)
Düzeltmeyi yaptım ;)

Fırat bey bu düzeltme yaptığınız kodu nerede bulabilirim. Ben de denemek istiyorum bakalım çalışıyor mu.
i'm doing nothing... Giddy Up  http://www.drorhan.com

CLR

Merhaba,

Benim sitedeki lcd'li uygulamalardan code'ları alabilirsin. Mantığı anlamada yardımcı olacaktır.
Knowledge and Experience are Power

orhanc

#9
isteğim şekilde pinleri ayarlayabilirmiyim onda ? Dosyalar sitenizin neresinden indiriliyor ? Sanırım sizin kodlarınız asm ile yazılmış ben hitech arıyorum bunları birleştirmem zor olur mu ?
i'm doing nothing... Giddy Up  http://www.drorhan.com

CLR

Merhaba,

İstediğin pine ayarlayabilirsin C olarakta var 16bit microchip ürünleri için, 8 bite uygulaman için küçük değişiklikler ister.

http://www.uicroarm.com/pic24-lcd-kullanimi#more-128
Knowledge and Experience are Power

orhanc

Sağol akşam deneyeceğim. LCD olayı yüzünden takıldım kaldım.
i'm doing nothing... Giddy Up  http://www.drorhan.com