Kayan yazıda karekter sayısı

Başlatan POWER, 04 Kasım 2005, 15:19:50

POWER

Arkadaşlar;
Basit bir kayan yazı uygulaması.Bunu formdan almıştım.Fakat  karekter sayıları değişince düzgün çalışmıyor.Örneğin,"picproje" yazısını arka arkaya kaymasını istiyorum.Proğramda karakter sayısı ile ilgili bölümleri düzelttiğim halde(demekki düzeltememişim)istediğim gibi olmuyor.En sonuna "eeeeeeeeee"uzayıp  gidiyor.Bunu nasıl düzelteceğim acaba?Gerekli dosyaları veriyorum.
http://rapidshare.de/files/7173446/kayan.rar.html
TB6BKG

fofo

Şu programı denesen
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTA
DEFINE LCD_RSBIT 0
DEFINE LCD_EREG PORTA
DEFINE LCD_EBIT 1
DEFINE LCD_RWREG PORTA
DEFINE LCD_RWBIT 2


LCDOUT $FE,$60,$04,$0E,$04,$04,$04,$04,$0e,$00
lcdout $fe,1
pause 100
kay var byte
                         
       Lcdkol con 16
       lcds con 28
       For kay=0 to lcds
       pause 100
       LcdOut $FE,$c90,REp " "\-kay,"P",4,"CPROJE.ORG"
       pause 200
       next kay
       pause 500
         for kay=0 to Lcdkol         
       next kay

ete

@Power,

Yalnızca LCDOUT satırını aşağıdaki şekilde değiştir.

lcdout $fe,143+c-a,d," "

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

POWER

İyi Çalışmalar
Söylediğiniz şekilde düzelttim problem yok.Bir iki nokta dışında.
lcdout $fe,2 yaparsam, son karakter ekranın en sağında kalıyor.
lcdout $fe,1 yaparsam, ekranda hafiften titremeler oluyor.En önemlisi yazının kayma şeklini beğenmiyorum.Sanki yazılar, ağır çekimde çekilmiş film oynuyormuş gibi hareket ediyor.Aynı devreyi f877 ile yaptığım zaman türkçe karekterleri çıkmıyor.Fikri olan varmı acaba?
TB6BKG

ete

POWER,

LCD de yapılan bu kayan yazı bit bazında karekter kaydırmayıp karekter bazında yapmakta ve dolayısıyla kayma darbeli görülmektedir. Bunun çaresi yok.
877 de türkçe çalışmamasının sebebi programın yazılış sırasından kaynaklanmaktadır.
LCD kullanılan bir programda tanımlamalar bittikten sonra programa başlamadan evvel;
LCDOUT $FE,1
PAUSE 200
komutlarının verilerek LCD nin aktif hale getirilmesi gerekir.
Her ne hikmet ise bu olay Isis de 16F84 için otomatik yapılıyor galiba. KIsacası 16F84 için fark etmiyor ama 877 için fark ediyor. Ayrıca LCD nin R/W bacağının da low'a çekilmesi veye direkt GND ye bağlanması gerekir.
Programı aşağıdaki şekilde düzeltirsen sorun ortadan kalkacaktır. Bir de döngü içindeki LCDOUT komutunu kaldırdım ve yazdırma bölümünü daha farklı yaptım. Dene bir bakalım nasıl olmuş.

lcdout$fe,$01
pause 200

LCDOUT $FE,$60,$04,$0E,$04,$04,$04,$04,$0e,$00    'İ dataları

low porta.2

dongu: 
for a=0 to 24 'Karakter sayısına onaltı eklenecek (8+16) 
pause 350'Yazının kayma hızı 
'lcdout $fe,1
for c=0 to 8 'Kayacak yazının karakter sayısının bir eksiği (9-1) 
lookup c, ["P",4,"CPROJE "],d 
lcdout $fe,143+c-a,d
next c

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

POWER

Hocam teşekkürler,son hali sorunsuz çalışıyor.f877'de türkçe karekter için farklı yöntemmi kullanılıyor acaba.f84 için yazdığım şekliyle çalışmıyor.
TB6BKG

ete

Pic BAsic Proda default kabuller var. F84 için olanlar biraz daha fazla sanırım. Dolayısıyla sen doğru LCD tanımlaması yapmamana rağmen komutlkarı kabul edip yazıları yazıyor. F877 ise doğru tanımlama istiyor. Hepsi bukadar.
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com