74595 ile yazı kaydırma

Başlatan _MeRKeZ_, 10 Temmuz 2013, 15:01:12

_MeRKeZ_

Merhaba arkadaşlar,

74595 entegresiyle yazı kaydırma uygulaması yaptım. Çalışma mantığı düzgün fakat yazı kayarken dalgalanma oluyor. Bu sorunu çözemedim.

Devrenin mantığı,

Matrisleri satır satır tarıyorum. 8 adet 40 elemanlı dizi mevcut, bu dizilere yazdırmak istediğim yazının sütun değerlerini girdim.

İlk satırı tararken şu elemanlar matrise taşınıyor:

satir1[0] satir1[1] satir1[2] .. satir1[39]

daha sonra

satir1[1] satir1[2] .. satir1[39] satir1[0]

şeklinde elemanları gösteriyorum. Bu mantık diğer satırları tararken de geçerli.

Teşekkürler

ete

Bir dot matrix ekranda satırlar ve sütunlar vardır. Tartışmasız en iyi metod olan satır tarama sisteminde karekterleri oluşturan bilgi satır bilgisi olarak sütun tarafından verilir. Temel sürme ve tarama  sistemi şu şekildedir.
1. Satır bilgisi boydan boya sütundan verilir genelde shift register kullanılır. Bu bilgi verilirken hiç bir satır aktif olmamalıdır. Aksi halde veri yerleştirme hızlıda olsa göz hareketleri yakalar. Ama satırlar kapalı olursa ledler kapalı olacağı için (anlık olarak) hareket görülmez. Veri aktarımı tamamlandıktan sonra 1. Satır aktif hale getirilerek yüklenen satır bilgisi ledlerde görülür. Bu konumda ledler en az 1 ms yanık bırakılır sonra satır tekrar kapatılır.
2. Satır bilgisi shift registerlere yüklenir ve bu sefer 2. Satır aktif edilerek yüklenen bilginin 2 satırda görülmesi sağlanır. 1 ms satır aktif bırakılarak kapatılır.
Bu prensiple toplam 8 satır da aynı şekilde sürülür. Bu sistemde gözümüz aradaki boşluk zamanlarını fark edemez ve bütün satırlar aynı anda yanıyormuş zanneder. Böylelikle titremesiz bir görüntü sağlanmış olur. Ekrandaki görüntü dalgalanıyor ise muhtemel sebepler şunlar olabilir.
- işlemci frekansı yeterli gelmeyebilir. İşlemci arada başka işlerde yapıyor ise ve bu işler epeyce zaman alıyorsa görüntüde kesiklikler ortaya çıkar bunun göze yansımadı dalgalanma şeklinde olur.
- bazen satır bilgisini yüklemek çok zaman alabilir. Bu durumda işlemcinin ara zamanda harcadığı  süre artar ve görüntünün kesilmesine sebep olabilir. Bu nedenle işlemler mümkün olan en hızlı bir şekilde yürütülmelidir. Unutmayınız ki en ideal sistemde veri yükleme süresi ledlerin yanık kalma süresinin 1/3 ü kadar olmasıdır bu süre 1/2 ye yaklaştığı oranda titremeler başlayacaktır.
Ara zamanda işlemleri hızlandırmak için işlemci frekansı artırılmalıdır.
Ete

_MeRKeZ_

Hocam,

Ben, ilk olarak yükleme yapılan satırı açıyorum -diğerleri kapalı- akabinde değerleri yüklüyorum. Bu sorun olur mu? Ayrıca ben hiç gecikme de vermiyorum. Yazı kaymaya başlayınca bir süre gayet iyi bir şekilde ilerliyor bir süre sonra ilk birkaç satır daha hızlı kayıyor böylece bir dalgalanma oluşuyor. İşlemci frekansını nasıl arttırabilirim? Bahsettiğiniz -1/2 , 1/3 oranındaki- süreyi nasıl ayarlayabilirim?

ete

İşin doğrusu satır kapalı iken veri yüklemek yükleme bittikten sonra satırı açmaktır. Bunu mutlaka bu şekilde yap.
İşlemci frekansı normal işlemcilerde maksimum 20 Mhz olabiliyor. Ama 18F serisi kullanırsan PLL kullanarak 40Mhz'e kadar çıkabilirsin.

Süre ayarını özel bir komut veya şekil ile ayarlamak mümkün değil elbette. Bunu komutları akıllıca kullanarak yapmak gerekir.
Mesela bu gün öğrendiğim bir şey var. Şayet işlemcinin donanımsal SPI portunu kullanırsan shift registerlere veri yüklemek neredeyse 10 kat hızlanıyormuş. Normalde 16 adet shift registere 660us de yüklenen veri,  SPI portunu kullanarak 72us de yüklenebiliyor. Gördüğün gibi epeyce bir süre ayarlaması (azaltması) yapabilecek bir imkan. Nasıl kullanacağım diye sorma çünki henüz bende inceleme aşamasındayım. Data sheet de her şey açıklanmış durumda. Çok zor gözükmüyor.

Ete

Powered by EzPortal