Grafik LCD kullanımı

Başlatan picmanya, 04 Mayıs 2010, 15:18:16

picmanya

burdaki ve internetteki bir çok grafik lcd ekran kullanımını incelediğimde bu lcd lerin işlemciyi uzun süre meşgul ettiğini görüyorum bunun aynı işlemci ile başkaca işlerin yapılmasında sorunlar çıkaracağını görüyorum grafik lcd nin kullanımı için şart olan bu zaman gecikmelerini kesme ile yapmayıda denedim burda amacım işlemcinin cpu sunun lcd gecikme komutunu uygularken orda takılıp kalmasını engellemekdi bu tür gecikme sorunlarının lcd kaynaklığı olduğu kesin benim öğrenmek istediğim bu sorunları komple ortadan kaldırmasada büyük ölçüde azaltmış bir lcd ismi önerebilirmisiniz yada sitede örnekleri verilen grafik lcd leri sürerken işlemcinin çok fazla olan ara gecikmelerde nasıl takılıp kalmayacağını açıklayabilirmisiniz

gladi

katılıyorum ...

bende ilaveten sorayım ... piyasada dokunmatik oparator panelleri var onları piclerle rahat kullanabilirmiyiz ? kullanan oldumu ...
misafir olan kimse, beraberce getiremediği birşeye kalbini bağlamaz.

picmanya

Pic ile grafik lcd kullanmak istiyorum istemesine ama pici ben yalnızca bu lcd yi sürmek için kullanmayacağım ki ona daha farklı işlerde yaptıracağım ve bu işlerde kesintisiz sürekli yapılmalı
pic ile grafik lcd kullanımında lcd için gereken programsal zaman gecikmeleri nasıl pici diğer işlerinden alı koymayacak şekilde düzenlenebilir bir türlü bunu halledemiyorum burda program nasıl yapılabilir yada farklı bir çözüm olarak ikinci bir pici diğer picle seri veya paralel haberleştirip bu piki yalnızca lcd yi sürmede kullansak olurmu bu çözüm ne kadar mantıklı yalnızca lcd için ayrı bir pic bu işi daha önce böyle yapan oldumu

SERRO EFE

atmega32 ile delta operatör panelini 485 üzerinden haberleştirmiştik ama sadece tatmin olmak içindi herhangi bir yerde kullanılmadı. veri akışının nasıl yapıldığını biliyorsan haberleşiyor.

picmanya

arkadaşlar pic le grafik lcd kullanımında lcd ye veri yazdırırken pic programında yapılması zorunlu zaman gecikmelerini nasıl pic'i dondurmadan pic in diğer başkaca işlerinden alıkoymadan başarabilirim bu konuda bilgisi önerisi olan yokmu incelediğim bütün örneklerde ve makalelerde pic ile grafik lcd kullanımında pic bütün işini gücünü bırakıp lcd sürülmesine odaklanıyor bir pic ile lcd ekran kullanımı benim o pic le ile aynı sistemin başka taraflarıyla ilgilenmemi tam anlamıyla geciktirerek hatalı iş yapmama neden oluyor bu işin kolayı bir çıkar yolu nasıl olabilir

t2

Ben grafik lcd kullanmıştım. Hiç de  bahsettiğiniz gibi olmuyordu. Yazıyı bir kere gönderdik mi orada duruyor, pic başka işlere geçiyor. istediğimiz zaman ekrandaki yazıları güncelliyoruz. "pic bütün işini gücünü bırakıp lcd sürülmesine odaklanıyor " kısmı gerçekçi değil. yazıyı yazdın, şekli çizdin. tamam iş bitti. 3 saniye sonra yine gel yine yaz.

Fakat ekranda film oynatacam dersen dediğin gibi olur. PIC in meşguliyeti, ne kadar sıklıkla  birşeyler yazılacağı ile alakalı.

satilla

Alıntı yapılan: t2 - 06 Mayıs 2010, 10:54:55
Ben grafik lcd kullanmıştım. Hiç de  bahsettiğiniz gibi olmuyordu. Yazıyı bir kere gönderdik mi orada duruyor, pic başka işlere geçiyor. istediğimiz zaman ekrandaki yazıları güncelliyoruz. "pic bütün işini gücünü bırakıp lcd sürülmesine odaklanıyor " kısmı gerçekçi değil. yazıyı yazdın, şekli çizdin. tamam iş bitti. 3 saniye sonra yine gel yine yaz.

Fakat ekranda film oynatacam dersen dediğin gibi olur. PIC in meşguliyeti, ne kadar sıklıkla  birşeyler yazılacağı ile alakalı.


hocam pic bütün işini gücünü bırakıp lcdnin istekleriyle ugrasıyor istersen birde aynı picten seri haberlesme yaptır ekranın sürekli gidip geldigini ve datanın ne kadar gec gittigini görürsün

t2

nealakası var. 16f877 ile rs485 kullanarak operatör paneli yaptım aynı cihaza hep ps2 barkod okuyucu ve ps2 pc klavyesi bağlanıyor.  Seri haberleşme için usartı kullanmalısınız.  Klavyeden bazı bilgiler giriliyor kürsor filan. hatta hoperlör de var. yanlış bilgi girilirse uyarı veriliyor doğru bilgi girilirse onay sesi veriliyor. gerçekten yaptım oldu.  proton kullandım.

t2

#8
Hatta bu cihazlardan 10 tanesi  aynı data hattına bağlanıyor . adresleme filan var. bilgisayardan istediğin cihaza mesaj gönderiyorsun.  panelden girilen veriler bilgisayara cihaz adresi ile beraber iletiliyor. Barkodla klavye aynı anda kullanılamıyor. ama olsun. zaten barkod üzerinde klavye için çıkış vardı. Kodu okunamayan etiket olursa, klavyeden onu giriyor.





Baud önemli . Çok düşük ayarladıysanız, usarttan gelecek bilgiyi bekliyorsanız süre uzar. ama ekran donmaz. LCD ye bilgiyi gönderdinizmi tamam. o artık onu kendisi göstermeye devam eder. isterseniz pic 1saat  döngüde kalsın. yine gösterir.

Muhtemelen sizin beslemede sorunolabilir.

satilla

Hocam yaptıgım uygalamayı protonda yazdım PIC ler arası 396 baud rf iletişim yaptım veri gönderirken glcdnin ekranı gidip geliyordu bu yüzden iletişimi f628e yaptırdm cıkısları high yaparak diger PIC i çalıştırdım uygulama dosyaları elimde değil şu anda devreyi yaptığım arkadastan alabilrsem göstermek isterim  sorunu çözmek için cok hocamla ugrastık fakat olmadı

t2

#10
Sorunları adım adım çözmeniz gerek. Gönderip alma işi uzun sürüyorsa belki karşı taraftan bir veri bekliyor olabilirsiniz.  bunun bir zaman aşımı olur. yani sürekli beklemezsin. meslea 100mS ayarladıysan  karşıdan onay gelmezse tekrar gönderir veya başka işlere geçersin. ekranla usartın doğrudan alakası yok.  ekrana birşey yazarsın ve diğer işleri yaparsın.  Zaten LCD üzeridnek işlemciler bunu sağlıyor. 

396 baud zaten anormal ve standart dışı. muhtemelen picte hiç  usart kullanılmamış veya kullanılsa da baud bu değere ayarlanmamış olabilir. baudlar eşit olmazsa veri gelmez gitmez. arasıra gitse de yanlış olur.  böyle çalışabilme ihtimaline güvenerek ciddi bir iş yapılmaz.

ben sorunu çözmek için sadece öneride bulunabilirim. kodu filan göndersen de onu ayıklamak anlamak uzun sürer. kendiniz de yapabilirsiniz.

Son olarak aklıma geldi LCD başlangıç noktası ayarı mı ne vardı. yazılar ortadan başlıyordu. Kullanılan glcd markasına göre bir tanımlama yapılıyor. Başlangıcı sıfıra ayarlamak gerekmişti. ayrıca türkçe karakterleri  filan uğraştım.  bilgisayardan gönderilen BMPyiekrana çizdirtmek ise başlı başına zordu. bmpyi çevirip cihaza gönderen program yaptım. bu işe çok vakit harcadım. şimdiki aklımolsaydı uğraşmazdım. 2-3 kat masraf ile hazır operatör paneli alınabilir. herşeyi kendimiz yapmamız gerekmez.

picmanya

glcd ye veri bir kere gönderilip ekrana basıldımı artık o hep ekranda kalıyor taki biz bir daha veri gönderene kadar burda sorun yok bunda hemfikiriz ve bu veri ekranda sabit kalacağı süre pic in glced ile işide yok peki ikincibirkez veri göndermek için programda neler yapıyoruz bu verinin karakter ve string yada şekil olma durumlarınıda düşünün reset ve ram temizleme olayları gerekmiyormu işte yeni veri gideceği zaman veri gidene kadar siz belirli komutlardan sonra pic'i bekletme modunda tutmuyormusunuz incelediğim bütün glcd ler kullanım özelliklerinde belirli gecikmeleri istiyorlar ama 10 ms. ama 1ms. bu gecikmeler verilmeden sürülemiyorlar ben işi bu şeklilde  biliyorum işte ekrana her veri basılmasında glcd nin kullanımından kaynaklı bu gecikmeler benim aynı pic ile diğer farklı işlerimi yapmamda sorun teşkil ediyor siz uygulanacak komutlar haricinde hiç boşa döngüsel zaman gecikmesi olmuyor diyebiliyormusunuz glcd işlemcisi pic kadar hızlı birebir hemen anlaşıyorlar diyebiliyormusunuz glcd yi kapsamlı bir şekilde kullandığımızı düşünün yalnızca karakter lcd ler gibi değil

t2

ustam ben bunu kullanalı 1 sene kaadr oluyor. bu tip sorunlar yoktu.

kullancıı klavyeden birşeyler giriyor . entere basıyor. lütfen bekleyin diyor.
sonra başka birşey yazıyor.

ama  ekrana komple grafik çizmek 1-2 saniye  kadar sürüyordu. BU yüzden tam grafik çizmekten kaçınıyordum.  1ms gibi süreler benim uygulamadan sorun olmuyordu.

pic içinde sadece küçük bir grafik var. yukarıdaki resimde görünen surat grafiği. diğer grafikler pcden gönderiliyordu. bu yüzden ram sorunu yok .

pcden gelen komuta göre işler yapılıyor. Grafik komple bir seferde yazılamıyordu. bu yüzden parça parça geliyordu.
Alıntı YapHRSin {mesajsuresi, mesajaltimeout} ,Wait( "scr" ),temp2, Komut1,Komut2,Komut3,Komut4
demişiz.

t2

bekleme ile ilgili bir tanımlama varmış ama onu iptal etmişm. sanırım böyle daha hızlı oluyormuş.
...
LCD_TYPE = SAMSUNG
INTERNAL_FONT = On
FONT_ADDR = 0
'GLCD_STROBE_DELAY 22 'iptal edilen

LCD_TEXT_HOME_ADDRESS 0		
GLCD_CS_INVERT On
...

t2

lazım olursa, include edilecek surat grafiği dosyası

Device = 16F877A
Mebs: '4,62,_
CData 000,000,000,000,128,192,224,224,096,112,112,048,048,048,048,048,_
112,112,112,224,224,192,128,128,000,000,000,000,000,000,000,000,_
000,000,000,000,000,000,000,000,000,192,240,124,030,014,007,007,_
014,254,252,224,192,224,112,048,112,240,240,192,000,000,252,254,_
143,007,195,193,000,000,000,000,192,192,000,000,000,000,000,252,_
254,134,006,001,015,031,063,248,240,224,000,000,000,000,000,000,_
000,000,000,000,000,000,254,255,003,128,128,128,000,000,000,227,_
255,127,003,000,000,000,000,227,255,127,000,000,003,007,007,014,_
015,031,062,120,112,096,255,255,240,000,000,000,000,255,255,247,_
007,007,006,006,007,007,003,001,000,000,000,096,112,120,252,254,_
206,128,000,000,031,127,255,223,223,199,224,120,254,255,191,190,_
158,192,224,120,063,015,003,000,000,000,000,000,000,000,000,000,_
000,000,000,000,000,007,031,062,056,048,048,061,063,031,000,000,_
000,000,000,000,000,000,000,000,000,000,000,000,001,003,007,007,_
007,014,014,012,012,012,013,012,012,000,000,001,001,003,001,001,_
000,000,000,000,000,000,000,000


Grafik parçacıklarını da böyle yazırıyormuşuz.  tüm ekrana grafik çizilecekse2 -3 saniye gibi sürüyordu.
        ElseIf Komut1="G" And Komut2="G"  Then      'BMP dosya , tek satırını bas
               For Xpos=0 To 127                     'Tam ekran için toplam 8 satır gelmeli
                    HRSin {1,dotdur1} , DotData
                    LCDWrite Komut3,Xpos,[DotData]
               Next    
               dotdur1:          
        
        EndIf