GLCD HAkkkında...ete hocamın dikkatine

Başlatan canbulut, 13 Aralık 2011, 17:47:31

canbulut

ete hocam elimde winstar ks108 tipi glcd var.. expkitsin ex8-b geliştirme kartına göre  yazdığınız hex dosyalarını yüklediğimde çok güzel çalışıyor...sizin picprojede paylaştığınız glcd programlarınızıda bu karta uyumlamaya çalışıyorum fakat başarılı olamadım:(pic basicde bu bu geliştirme kartına uygun yazılmış açık kodlu kaynak dosyanız varmı?

ete

Benim bütün kodlarım açık kodlu dur. Xpkits de verdiğim programlarda açık.Her şey açık zaten. O halde sana düşen karşılaştırma yapıp neyin nasıl olduğuna dikkat ederek uyarlama yapman. Başka bir şey gerekmez.

GLCD ler için bir kaç program yazmıştım. Bunların pek çoğu ortalıkta dolaşıyor zaten. Hepsinde de kodlar açık ve en önemlisi satırların kenarında açıklamalar mevcut. 

Ete

canbulut

varmış hocam sanırım daha önce silmişim.dosyayı güncelleyince buldum.inceleyim...

canbulut

merhaba hocam grafik lcdye yazı yazdırırken  yazı kodlarını teker teker bir kareli kağıtta kendimizmi çıkaracağız kolay bir yöntemi yokmu?veya herhangi bir program?

Mucit23

Var. Eklediğim programı indir. Programı çalıştır ve Araçlar Sekmesine gel. Araçlar Sekmesinde GLCD 5x7 KarakterMatik - DC Programını aç. Karşına 5x7 Matrixden oluşan pencere gelecek. Orada istediğin harfi oluştur. Hemen Alt tarafta oluşturduğun harflerin  desimal ve hex karşılığını verecektir. Harf oluşturmada bu program sana yardımcı olur. Ayrıca Programı incelersen Elektronikle  ve yazılımla Uğraşırken Sana yardımcı olacak birçok eklentisi mevcut. Benim en çok kullandığım programlardan biridir.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

canbulut


canbulut

hocam bu 5*7lik grafik lcd için küçük olmadımı?

asıl istediğim şey şuydu 64*128de kaç dot var..bunu bir bilgisayar ekranında gösterirken pic basice göre çıkartabilcek gibi bir şey.

Mucit23

Hayır Benim Verdiğim program Sadece Harf Datalarını oluşturmada yardımcı olur sana. Eğer 128X64 Boyutunda bir Görünyü ekrana direk basmak istiyorsan FastLCD Programını kullanabilirsin. Bu programda Ekranda ne görmek istiyorsan çiz. Sonra bu Program ile oluşturduğun dataları BMP(Bitmap) olarak kaydet. Sonra Pixel V1.2 Programıyla Bu oluşturduğun 128X64 Boyutlarında MonoChrome Resmi .inc dosyasına çevir. Bu program Resimi Resim datalarına çevirir. Sonra bu dataları Sırayla GLCDye basacaksın. Çok kaba anlattım ama oturup biraz çalışman gerekir. Biraz uğraşırsan Sistemin nasıl çalıştığını kolaylıkla anlayabilirsin. Ben çok kullandım bu sistemi. Gerçi Ben protonda kullanıyordum ama Pic Basicdede Ete hocanın kodlarına rahatlıkla uygulayabilirsin.
http://320volt.com/proton-glcd-resim-basma-uygulamasi/
Burayı incele
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

canbulut

değerli arkadaslarım..özellikle mucit23 arkadasım,ete hoca kısa bir yazım yapmış glcd'de...yalnız ben tüm ekrana yazacak şekilde yapsam btün bilgiler çok rakam oluşturur..bilgi gönderirken shiftout komutunu kullanarak yapmış...8*8 şeklinde...ben bunu nasıl uygulayacağım shiftout kodu ile...320volt sitesinde örneğin include "aaaa" .bas gibi kendi bir kütüphane oluşturmuş fakat kodlar protona göre.burdaki durumu nasıl çözeceğiz...kullanacağım programla birleştirmek istesem benim program 2kdan fazla yazmıyor zaten.:(

Mucit23

#9
Neden bahsettiğini hiçbirşekilde anlamadım. GLCD paralel olarak haberleşir. Shiftout nereden çıktı!! 128X64 boyutunda bir mono resmin boyutu 1024 byte (1Kb) Tutar. Siz MCS nin hangi versiyonunu kullanıyorsunuz. Eğer plus versiyonunu kullanıyorsanız o sınırlı bir versiyondur. Onu kullanmayın.

Ks108 çipli 128X64 bir GLCD yi 8 satır 128 sütün bir LCD gibi düşünebilirsiniz. Her satır kendi içerisinde 128 sütündan oluşur ve her sütün ise 8 bitten oluşur. LCD ekrana her seferinde 8 bitlik bir data gönderilir.

Örnek vermek gerekirse LCD ekranın sol üst köşesine bir nokta koymak için Xpos ve Ypos Adresleri 0 olarak ayarlandıktan sonra Göndereceğimiz Data 10000000 şeklinde olur. Eğer bir çubuk koymak istersek göndereceğimiz data 11111111 olur. İki nokta koymak istersek 00100100 şeklinde olur. Yani göndereceğimiz datanın 0. biti LCD ekranda seçtiğimiz satır ve sütündaki 8 bitlik dataya eş gelir. Biz Eğer 7. biti 1 yaparsak GLCD de seçtiğimiz sütünun 8. pixeli yanmaya başlar. İşte Çalışma şekli bu şekildedir.

Protonda GLCD desteği olduğu için Direk LCDWrite gibi bir komutla LCD ekranın istenilen noktasına direk 8 bitlik bir data gönderebiliriz. MCS de GLCD desteği yok ama ETE hoca Expkits için hazırladığı programlarda GLCD kullanımını adım adım açıklayarak anlatmış. PixelV1.2 programıda Resim Datalarını inc dosyasına çevirirken Resmi 8 Satır 128 sütüna bölerek inc dosyasına çevirir. Yani inc dosyasındaki datalar sırasıyla
0. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
1. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
2. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
3. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
4. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
5. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
6. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
7. satır; 1. sütün, 2. sütün, 3. sütün, ............, 127. sütün
şeklinde dizilidir.

Zaten resimlerin oluşturulduğu .inc dosyasını incelersen 64 satırdır. Her bir satırda 16 adet data bulunur.  Bizim her bir satırımızda 128 sütün olduğu için 128/16=8 yani .inc dosyasındaki dataların ilk 8 satırı 1. satırın datalarına denk gelir. Sonraki 8 satır ise 2. satırın datalarına denk gelir. İşte dosyaların yapısı bu şekildedir. Fakat PBP de Cdata diye bir komut olmadığı için .inc dosyasını direk programa dahil edip kullanamazsın. Bu yüzden lookup benzeri bir bir komutla programa resim datalarını dahil etmelisin.

Tam emin değilim ama sanırım Lookup ve LookupL gibi komutlarda index değeri 8 bit uzunluğunda. Bizim Resim adresimiz 0 ile 1024 arasında değişeceği için problem olabilir. Daha önce bende pek fazla uğraşmadığım için fazla bilmiyorum. En iyisini ETE hoca bilir.Dataları programa dahil etmek için farklı alternatifler üretilebilir.

Konumuza dönersek sana kalan iş şu anda ETE hocanın GLCD programlarını inceleyip hangi komutların ne işe yaradığını iyice anlamak. Gerisi zaten çorap söküğü gibi gelecektir senin için.

Kolay Gelsin.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

canbulut

evet lookup ile vermiş kodu.shiftout değil.plus kullanıyorum:(ne yapmalıyım.

Mucit23

MicroCode Studio Plus ücretli ve sınırlı bir versiyon. Demo olarak sınırlı kullanabilirsiniz. Tam sürüm olarak kullanmak için yanılmıyorsam lisans satın alınması gerekiyordu.
Aşağıdaki linkten üst versiyonlarını indirebilirsiniz.
http://hotfile.com/dl/102591553/7b9213c/MicroCode_Studio_3.0.0.5.rar.html
Yazılımla ilgili ne yapmanız gerektiğinide size bir önceki mesajımda anlatmıştım.
Kolay gelsin.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

zoptrik

Alıntı yapılan: Mucit23 - 12 Ocak 2012, 23:33:43
Örnek vermek gerekirse LCD ekranın sol üst köşesine bir nokta koymak için Xpos ve Ypos Adresleri 0 olarak ayarlandıktan sonra Göndereceğimiz Data 10000000 şeklinde olur. Eğer bir çubuk koymak istersek göndereceğimiz data 11111111 olur. İki nokta koymak istersek 00100100 şeklinde olur. Yani göndereceğimiz datanın 0. biti LCD ekranda seçtiğimiz satır ve sütündaki 8 bitlik dataya eş gelir. Biz Eğer 7. biti 1 yaparsak GLCD de seçtiğimiz sütünun 8. pixeli yanmaya başlar. İşte Çalışma şekli bu şekildedir.


Buna benzer bir bilgiyi ne kadar aradım. Bulamamıştım. en sonunda 3310 ekranıyla ve örnekleri inceleyerek deneye deneye çözmüştüm.
Güzel paylaşım. Teşekkürler.
iyi forumlar...
DEHA; İMKANSIZDA MÜMKÜNÜ GÖREBİLMEK DEMEKTİR.GEMİLERİN KARADA DA YÜZEBİLECEĞİNİ SEZMEK, MEHMETLERDEN BIRINI "FATİH" YAPAR...!

canbulut

mucit23 kardeşim verdiğiniz mcs'dede 2k üzerine çıkamıyor.800boundry gibi bir hata veriyor.

ete

Boundry cross bir hata değil ikazdır. İlk hafıza blok'unu aştığınızı ikaz eder. Bu aşma programda BRANCHL gibi komutlar kullanıyorsanız önemlidir. Pic hafızaları 2K lık bloklar halindedir. Biri bitince diğerine  (2 şer K lık ayrı entegreler gibi düşünün) geçilir. Alsında basic bunu otomatik yapar ama dediğim gibi bası komutlarda sizinde tedbir almanız gerekebilir. İkaz da bu yüzdendir.

Ete

Powered by EzPortal