Haberler:

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

Ana Menü

Grafik Lcd inversion

Başlatan HeCToR, 21 Şubat 2016, 13:28:16

HeCToR

Merhaba Arkadaşlar Resimdeki Saat kısmı gibi negatif, pozitif tersleme işlemini nasıl yapabilirim örnek verebilirseniz memnun olurum Saygılar.

Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

Mucit23

Bunu yapabilmeniz için öncelikle Yazıyı invert olarak yazabilmeniz lazım. Öncelikli olarak bu konuya bakın. Bunu yapabiliyorsanız eğer geri kalan kısımda basit

Önce SAAT yazan kutucuğu tamamen siyaha boyarsınız, Sonra İnvert olarak içeriye SAAT yazısını yazarsınız. En basit bu şekilde olur.

HeCToR

@Mucit23 bu kutucuğu karartma işlemini line,linemı olarakmı doldurmak gerekir yoksa pixel,pixelmi geçişlerde hızlı olması gerekiyor örnek uygulama yada  kod varsa sevinirim
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

Mucit23

Resimdeki gibi bir LCD ile çalışıyorsan her halükarda pixel pixel dolduracaksın. Ekranı nasıl tasarladığına bağlı aslında. Ama Rectangle gibi fonksiyonları kullanırsan bildiğim kadarıyla bunlar zaten pixel ile çalışıyor. Ama hız konusunda çok fazla problem olacağını sanmam.

LukeSkywalker

Bu gibi şeyleri image olarak yapmak en kolayı sanırım.

HeCToR

@LukeSkywalker yani kutucuğu image olarak siyah bas diyorsun yazıyıda invert et diyorsun hocam
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

F.T

Zaten resimdeki imaj olmalı.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Karamel

@CORTEX ustadim.

ekrandaki menuyu resim olarak hazirlayin. hic birisi negative olmasin. buton gibi seylerin hangi cordinate ta oldugunu biliyor olmaniz gerekir. butona basilmis kisim i ekrana gostertirken negative olarak ekrana gostertir. diger kisimlari normal olarak gostertirseniz. istediginiz olur gibi gorunuyor?

Mucit23

Resimle olur ama bu tip bir lcd de yapılacak en kötü yöntem olur herhalde. Bir dünya hafıza yersiniz.

Karamel

hocam benim hesaplarima gore bir resim 1024 byte tutuyor?  :-\ mesela 16k rom u olan bir microcontroller icin. 1 menu 15k free rom?

quarko

Bu tip işler için resim olmasına gerek yok. Text basabiliyorsanız ve dikdörtgen çizdirebiliyorsanız resme gerek yok demektir. Text basma fonksiyonunuza bir adet parametre gönderirsiniz. O parametreye göre normal veya invert olarak yazılmasını seçebilirsiniz. Boşu boşuna hafızanızı harcamayın, resim yaparak :)
"Aslanlar kendi hikayelerini yazmadıkça, avcıların kahramanlık hikayelerini dinlemek zorundayız."

Mucit23

Evet aynen öyle, Karamel zamanında bu konuda başım ağrıdı. Yeri geldiğinde o 1K rom için 40 takla atabilirsin. Yada hafızası daha yüksek pahalı bir işlemciye geçeceksin.

Yarım kalan kuluçka kontrol cihazı adında bir projem vardı. O zaman C bildiğim yoktu. Protonda yapmıştım. Bayağı karışık bir sistem birçok menü var menülerinde alt menüleri vs var. Sırf 10-15 tane resim kullanmıştım. Resimler üzerinde yazıları invert yaparak menüler arasında geziniyordum aslında güzel bir örnek ama üzerinden 4-5 sene geçmiş şimdi ne yaptığımı hatırlamıyorum bile. Sonradan bir sebeble projeden vazgeçtim. Ama menü yapmayı çok iyi öğrenmiştim.

Şimdi resimdeki 128x64 lcd için konuşursak o şekilde bir menü yapmak gerçekten çok basit. Resim'e gerek yok gerçekten. @quarkonun dediği gibi renctangle fonksiyonunuz var ise ve invert text basabiliyorsanız birçok basit menüyü yapabilirsiniz.

O projeyi ekte ekliyorum inceleyebilirsiniz.
http://dosya.co/78hu8ws8heom/KULUÇKA.hex.html
http://dosya.co/hhaocpyl0h31/Şema.DSN.html



HeCToR

Şimdi yazıları text olarak basıyorum zaten bir fonksiyon oluşturup içerisinde line şeklindede kutu oluşturup içerisini yine line ile dolduracağım bu kutucuğu textin üzerine atadığımda ve textide eş zamanla invert ettiğimde olacak diye umuyorum önerileriniz için teşekkürler
Bilginin Efendisi Olmak İçin Çalışmanın Kölesi Olmak Gerekir

dursuncemal

#13
once kutucugu sonra texti yazarsaniz sorun olmayacaktir. islemcide yeterli yeriniz varsa hic ugrasmadan tumunu tablo seklinde de atabilirsiniz biraz kaba ama daha rahat olur kanisindayim.ayrica cok basit bir

fonksiyon ilede sadece siyah bogeyi atabilirsiniz tablo bile gereksiz  anladigim ladari ille tuslara basma fekti yapacaksiniz. ayni fonksiyonu lokal silme yapacaginiz zaman da kullanabilirsiniz.

sorunuzdan cıkarimim herhangi bir glcd kutuphanesi, kıllanmıyorsunuz kendınız fonksiyonları kendınız yaziyorsunuz

kolay gelsin.
:=

birkan

Örneğin
lcd_write();
Gibi bir fonksiyonunuz varsa
O fonksiyonun kopyasını Alıp
Lcd_black_write();
Isimli bir fonksiyon daha oluşturun
Bu fonksiyon const içindeki çağırılan byte ları tersleyip öyle yazsın. Umarım anlatabilmişimdir kolay gelsin.