Kayan yazıda istediğimiz satırdaki yazıyı kaydırmamız???

Başlatan davul42, 08 Nisan 2011, 12:21:33

davul42

Dim a As Byte
a = 0
TRISB = 0
DelayMS 500




basla:
Print $fe,1, "www.picpro.org Zafer AKBAY"
DelayMS 200


For a = 0 To 30
    Print $FE,$1E   ; önce sola kaydır
    DelayMS 150
Next


DelayMS 1000


For a = 0 To 30
    Print $FE,$18  ;daha sonra sağa kaydır
    DelayMS 150
Next


    DelayMS 2000
GoTo basla

Netten en basit örnek olarak bulduğum bu uygulama için birkaç şey danışacaktım arkadaşlar....istediğimiz satırı kaydırıp diğer satır veya satırları sabit tutmamız için ne yapmalııyız...??
ben
kursörü satırın başına getir komutunu döngü içine koyarak sürekli o satır üzerinden işlem yapsın diye denedim.olmadı "print $fe,2"
birde kullanılan
Print $FE,$1E sola kaydırmak
Print $FE,$18 sağa kaydırmak
bunlar kendi başlarına bir komutmudur?

Maxim

tam olarak yazı nasıl gözükecek ?
soldan başlayıp sağdan kaybolacak ?
soldan sağa kayacak ? ama lcd dışına taşmayacak ?

lcd ekranda yazı kaydırma komutu diye hazır birşey yoktur .

birde picbasic komutlarından vazgeçmen lazım,
proton+ mı kullanıyorsun ? o zaman yazı komutu böyle "print at 1,1,"picproje"

davul42

print at 1,1, " ali "
print at 2,1, "veli"
1nci satırdaki ali yerinde duracak,2nci satırdaki veli aşağıdaki linkte olduğu gibi ama sadece sola doğru aralıklı sürelerle kayacak..

http://www.picpro.org/pic_ile_LCD%20_kayan_yazi.html

proton+ kullanıyorum ama bendeki bir dökümanda aşağıdaki  liste var ve $fe den sonra geldikleri için bunlar bir komut değilmidir?bu yazıdan örnek alarak "print $fe,$1e" acaba yazıyı sola doğru komutu kaydırmamı diye düşündüm...

print $FE,$0C Kursörün görüntüsünü yok eder
print $FE,$0E Kursörü alt çizgi biçimine getirir
print $FE,$0F Kursörü yanıp/Soner yapar
print $FE,$10 Kursörü 1 pozisyon sola getirir
print $FE,$14 Kursörü 1 pozisyon saga getirir
print $FE,$c0 Kursörü ikinci satirin basına getirir

Maxim

proton normalde $fe ile başlayan print komutlarınıda kabul eder ama kolaylık ve daha anlaşılır olsun diye "at" yazılıma eklenmiş,
print at 2,1,"abc" gibi.

fakat diğer şey benim için yeni, detayını bilmiyorum
Print $FE,$1E
Print $FE,$18

1e ve 18 tanımlamaları bu işemi yarıyor gerçekten ilk defa gördüm .
ayrıca "a" değişkeni ile print komutu nasıl bir etkileşim içindedir o da garip
hiç kullanmadım o şekilde. kod çalışıyormu? evet çalışıyor .

davul42

Gösterdiğim örnekte dediğim gibi komple lcd ekranını sola veya sağa doğru götürüyor evet o a değişkeni olmadanda bir döngüye sokarakta yapmak istediğimizi yaparız ama orda 30 kere sola gitsin(yazının tamamı sola gidene kadar) ve 30 kerede sağa gelsin diyerek yazı karakter sayısı ve kayan yazı şekline göre bir döngüye sokmuş...
istediğimiz satırı silme olanağımız varmıdır?
yada kayan yazı uygulamalarında kullanılan başka bir yöntem varmıdır?

Maxim

biraz baktımda bu komutlar ekrandaki yazıyı sadece bir sağa veya bir sola kaydırıyor
a değişkeni aslında sadece tekrar sağlamak için,
her tekrarda yazı bir sola kayıyor ,bir sonraki print komutunda bir sola daha !

dolayısı ile 1. satırdaki yazılar sabit dururken,
2. satırdakileri bu şekilde kaydırmak mümkün gözükmüyor
onun için farklı kod yazmak lazım

Device 16F628
Xtal 4

Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.3
Declare LCD_RSPin PORTB.2
Declare LCD_Interface 4
Declare LCD_Lines 2


Dim a As Byte
a = 0

TRISB = 0
DelayMS 500


Loop:

Print At 1,14,"Ali"
For a = 0 To 12
Print $FE,$1E   ; önce sola kaydır
DelayMS 100
Next

DelayMS 500

Print At 2,13,"Veli"
For a = 0 To 12
Print $FE,$18  ;daha sonra sağa kaydır
DelayMS 100
Next


DelayMS 1000

GoTo Loop

Maxim

böyle birşey mesela.
(evet kötü bir örnek)


Device 16F628
Xtal 4

Declare LCD_DTPin PORTB.4
Declare LCD_ENPin PORTB.3
Declare LCD_RSPin PORTB.2
Declare LCD_Interface 4
Declare LCD_Lines 2

Dim a As Byte

TRISB = 0
DelayMS 500


Loop:
a=1

For a = 1 To 13
Cls
Print At 1,1,"Ali"
Print At 2,a,"Veli"
DelayMS 100
Next

a=12

For a = 12 To 1 Step -1
Cls
Print At 1,1,"Ali"
Print At 2,a,"Veli"
DelayMS 100
Next

GoTo Loop