LCD Özel karakter basma, yardım Lütfen !

Başlatan Can06, 08 Ekim 2017, 23:02:34

Can06

Selamun aleyküm, herkeze iyi çalışmalar ve başarılarınızın devamını dilerim.

Bir projemde yön oklarına ihtiyacım var ve LCD'de bastırmak istiyorum bir türlü öğrenemedim
bu konuda bana yardımcı olacak arkadaş olursa gerçekten çok sevinirim uzun zamandır ugrasıyorum yapamadıkca sitres olmaya başladım.
anlayışınız ve yardımınız için şimdiden teşekkürler.




vitruvius

Normal karakterleri yazdirabiliyor musun?

Teğmen

Arkadaşın dediği gibi normal karakterleri yazabiliyor musun LCD'ye?
Hangi dili kullanıyorsun ?
LCD kütüphanesine ufak bi ekleme yaparak kullanma ihtimalin var az detay vermelisin
"Girdim ilim meclisine kıldım eyledim talep,   Dediler ilim geride kaldı illa Edep illa Edep" Hz.Yunus Emre K.S.

Can06

Ccs c derleyicisini kullaniyorum C diliyle

Standart 2x16 lcd ekran.

Su an lcd elimde olmadigi icin once proteusdan deniyorum.

Biraz arastirma yapmama ragmen karmasik geldiginden dolayi bir turlu halledemedim.



Can06

Normal karakterleri yazma konusunda bi sknti yok, ozel karakterleri yazdiramiyorm.

RaMu

Sağ Sol okları için özel karaktere gerek yok,
printf(lcd_putc,"%c %c",0x7E,0x7F);



Özel karakter için nette epey bilgi ve örnek mevcut.
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

ete

LCD nin kendi karekter hafızasında bulunan her türlü karekter normal karekter olmaktadır. Özel karekter denildiğinde ise kullanıcının kendi zevkine göre yeniden ürettiği karekterler anlaşılır. Sizin kullanacağınız karekterler normal karekter sınıfına girmektedir.
Kullanımı ise son derece basit. Diğer LCD yaz komutunu verdikten sonra ASCII numarasını vermeniz yeterli olmaktadır.
Verdiğin karekter tablosuna bakacak olursan;
Yukarı Ok: %00011000 , yada desimal 24
Aşağı Ok : %00011001, yada desimal 25
Sağa Ok : %00011010, yada desimal  26
Sola ok : %00011011, yada desimal 27
Sayılarını vermen yeterli olacaktır.
Ete

Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Can06

Bu verdiğiniz değerleri CCS derleyicisine kod şeklinde aktarcak olsam nasıl yapmam gerekir.
kod şeklinde yazarmısınız rica etsem.
Bu konularda bilgilerim yetersiz kalıyor, yardımlarımız için çok teşekkür ederim hakkınızı helal edin.

Teğmen

Bu komutları lcd.c kütüphanesine eklersen direk bi daha yazmana gerek kalmadan kullanabilirsin.
Fakat olayın başındayım diyorsan başta anlatıldığı gibi yap sonra kütüphaneleri incelemeyi mutlaka öğren.

İyi çalışmalar
"Girdim ilim meclisine kıldım eyledim talep,   Dediler ilim geride kaldı illa Edep illa Edep" Hz.Yunus Emre K.S.

Can06

SAĞ VE SOL OK YÖNÜNÜ HALLETDİM

YUKARI VE AŞŞAĞI OK YÖNÜNÜ NASIL YAPABİLİRİM ?

Can06

Yukarı ve Aşşağı ok yönleri için yardımcı olurmusunz ?

RaMu


https://320volt.com/ccs-c-ornek-uygulama-kod-arsivi-c-ve-hex/
Serdar Hocanın  kitabından şu örnek:
http://ccspic.com/302/https://320volt.com/wp-content/uploads/2008/10/ozel_karakter_lcd.c


Veya nette detaylı anlatımlar var.
LCD CGRAM, 2x16 LCD özel karakter diye aratabilirsin.










Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

Can06

Sayenizde Sağ ve Sol ok yönlerini halletdim ilginiz için çok teşekkür ederim

Yukarı ve aşşağı ok yönlerini bir türlü halledemedim onların yerine 'Y' ve 'A' olarak yazdım Lcd'ye ama ben ok yönlerinle yapmak istiyorum.

Tablodaki ok yönlerinin decimal karşılığı ' 0x18 ve 0x19 ' olmasına rağmen lcd ye aktardığımda görüntü gelmiyor.
Bu konuda yardımınıza ihtiyacım var projem bitmek üzere son aşamalarını hallediyorum yardımcı olan veya olmayan herkeze teşekkür ederim.
Bu site sayesinde çoğu konuya hakim oluyorum, Allah ümmet-i Muhammede ve Vatanımıza hayırlı işler yapmayı nasip etsin inşAllah.

Can06


pwm.c


Buradaki LCD tablosunda yukarı ve aşağı oklar bulunmuyor. senin ilk verdiğin toblo ise başka bir lcd modeline ait olabilir.
proteustaki lcd için özel karakter oluşturmalısın.



örnek kod:
#include <LCD.c>             
int yukari[8] = {0x4,0xE,0x15,0x4,0x4,0x4,0x4,0x4};
int asagi[8] = {0x4,0x4,0x4,0x4,0x15,0xE,0x4,0x4};

void main(void){     
   lcd_init();
   lcd_set_cgram_char(0,yukari);
   lcd_set_cgram_char(1,asagi);
   
   while(true)
   {              
      lcd_gotoxy(1,1);
      printf(lcd_putc,"%c %c",0,1); //yukarı ok / aşağı ok /
      lcd_gotoxy(1,2);
      printf(lcd_putc,"%c %c",0x7F,0x7E); //sol ok / sağ ok /      
   }
}






_/\/\/\_ -[ı- -ı>|- -|ı|ı|ı- -ı< -||- -l[]l-