Kayan yazı parlaklığı için yardım!

Başlatan bilgehansahin84, 26 Eylül 2006, 14:33:00

bilgehansahin84

BİR SORUM DAHA VAR ARKADAŞLAR. SATIR TARAMADA YAZIYI HANGİ MANTIKLA KAYDIRMAMIZ GEREKİYOR. SÜTUN TARAMADA BİR ÖNCEKİ SÜTUNU AKTARMA MANTIĞI VARDI. E BUNDA NE YAPICAZ?
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

XX_CİHAN_XX

BDX53 veya 54 gibi bir güç transistörü önerebilirim.
Tarama mantığına gelince satır taramayı secmen ıyı olmuş.Burada kaydırma yontemın ekran regısterlerını rlf yapman yeterlı olucaktır.
her satır ıcın regıster dızısı olusturacaksın.ve bunları pespese kaydıracaksın.Boylelıkle ekranında yazı kayacak.Örnek:
         bcf         status,c
          rlf          satir1_blok1,f
          rlf          satir1_blok2,f
          bcf         status,c
          rlf          satir2_blok1,f
          rlf          satir2_blok2,f
          .
          .
          .
          .
          bcf         status,c
          rlf          satir7_blok1,f
          rlf          satir7_blok2,f

yukarıda kaydırma rutını bulunmakta.
ekranın 7 satırdan(satir1_..... , ..... , satir7_......) ve 16 stundan(..._blok1 , ...._blok2) olustugunu varsayalım.
Yukarıdakı regıster kaydırma mantıgı ıle ekranı kaydıracaksın.Tabı kaydırmadan once bu ekran regısterlerınde ekran datası bulunmalı.
Kaydırma ıslemının ardından ekrana satır satır bu regısterrı gonderrek goruntuyu olusturacan.örnek:
         movf          satir1_blok2,w
          call             seri gönder
          movf          satir1_blok1,w
          call             seri gönder
          call             satir1i_secvegöster

          movf          satir2_blok2,w
          call             seri gönder
          movf          satir2_blok1,w
          call             seri gönder
          call             satir2yi_secvegöster


Kolay gelsin....
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

bilgehansahin84

Cevabını görmeden önce biraz uğraştım ve her satırı bir diziye aymadan yapamadım. Ama 48 sütunluk bir yazıda, Pic Basic ile, 8 elemanlı 48 tane dizi oluşturmam gerekmiyor mu? E bunun içi denemedim ama hafıza yetmez. Dediklerinden de bunu çıkardım sanırım. Gösterilen her satırdaki dataları sakla. Sonrada yazının arkasından tek tek gönder diye anladım. Doğrumu?
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

XX_CİHAN_XX

Alıntı yapılan: "bilgehansahin84"Cevabını görmeden önce biraz uğraştım ve her satırı bir diziye aymadan yapamadım. Ama 48 sütunluk bir yazıda, Pic Basic ile, 8 elemanlı 48 tane dizi oluşturmam gerekmiyor mu? E bunun içi denemedim ama hafıza yetmez. Dediklerinden de bunu çıkardım sanırım. Gösterilen her satırdaki dataları sakla. Sonrada yazının arkasından tek tek gönder diye anladım. Doğrumu?

C den cok fazla anlamam ama sanırım benı yanlıs anlamıssın.
48 stun ve 8 satır lık bır kayan yazı ıcın 48 adet regıstere ihtiyacın vardır.
Bu durumda ( 6*8=48 ) 6 adet 8 elemanlı bır dızı acman yeterlı olacaktır.

Burada butun ekran datalarını satır satır farklı regısterlerde saklamalısın.
Saklamadan yapılamazmı dıye sorarsan yapılır elbette ama cok daha zor ve kotu bır kayan yazı yapmıs olursun.
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

bilgehansahin84

Şimdi bir dakika, 6 adet 8 elemanlı dediğin ile satır satır saklamalısın olayı bana farklı geldi.
satır satır dediğinden şunu anladım :
diyelimki ilk satırdaki veriler atıyorum : 11001010000111000000101001.....(48 tane)
bunu bir dizide saklamalısın diye anladım.
6 adet 8 elemanlı demenden de her bir ledin datasını saklamalısın, veya bir başka mana 6 ya 8 boyutunda bir dizi. Yani iki boyutlu bir dizi oluştur diyorsun. Basicte bu iki boyut olayını bulamadım zaten. Yoksa aklımdan bunu bir denemek geçmemiş değildi.
@XX_CİHAN_XX , kusura bakma o kadar çok üzerinde durdumki sütun taramanın, satır tarama için yürüteceğim mantıkta oradan kalan kırıntıları silmem zor oluyor.
Eğer hala anlamamışsam bana basit bir şekil ile açıklayabilirmisin.
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

bilgehansahin84

@XX_CİHAN_XX, eğer dediğini anladıysam, 6 adet 8 elemanlı dizi tanımladım ve her 8bitlik satır datasını bunlarda sakladım. sıra geldi bunların kaydırmadaki argoritmasına. inşallah yazabilirim.
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

XX_CİHAN_XX

;SATIR TARAMA SISTEMINE GORE
;7 SATIR VE 48 STUNDAN OLUSAN BIR KAYAN YAZI ICIN ACMAN GEREKEN REGISTER SAYISI VE 
;KAYDIRMA MANTIGI ASAGIDAKI GIBI OLMALIDIR

;*******************************************************
		LIST		P=16F876A
		INCLUDE		"P16F876A.INC"
;*******************************************************
	__config(_CP_OFF & _PWRTE_OFF & _HS_OSC & _WDT_OFF & _BODEN_OFF & _LVP_OFF)
		ERRORLEVEL -302
		ERRORLEVEL -306		
;*******************************************************
		CBLOCK	0x20

;EKRAN REGISTERLERI(HER LEDIN KONUMU ILGILI REGISTERIN BIR BITINDE SAKLANICAK!!!)
SATIR1_BLOK1
SATIR1_BLOK2
SATIR1_BLOK3
SATIR1_BLOK4
SATIR1_BLOK5
SATIR1_BLOK6

SATIR2_BLOK1
SATIR2_BLOK2
SATIR2_BLOK3
SATIR2_BLOK4
SATIR2_BLOK5
SATIR2_BLOK6

SATIR3_BLOK1
SATIR3_BLOK2
SATIR3_BLOK3
SATIR3_BLOK4
SATIR3_BLOK5
SATIR3_BLOK6

SATIR4_BLOK1
SATIR4_BLOK2
SATIR4_BLOK3
SATIR4_BLOK4
SATIR4_BLOK5
SATIR4_BLOK6

SATIR5_BLOK1
SATIR5_BLOK2
SATIR5_BLOK3
SATIR5_BLOK4
SATIR5_BLOK5
SATIR5_BLOK6

SATIR6_BLOK1
SATIR6_BLOK2
SATIR6_BLOK3
SATIR6_BLOK4
SATIR6_BLOK5
SATIR6_BLOK6

SATIR7_BLOK1
SATIR7_BLOK2
SATIR7_BLOK3
SATIR7_BLOK4
SATIR7_BLOK5
SATIR7_BLOK6

;TAMPON REGISTERLERI(EKRANA AKTARILACAK HARFIN TUM DATALARI ONCE BURAYA YUKLENIR)
SATIR1DATASI
SATIR2DATASI
SATIR3DATASI
SATIR4DATASI
SATIR5DATASI
SATIR6DATASI
SATIR7DATASI

		ENDC
;*******************************************************
		ORG			0x00
		GOTO		START
		ORG			0x04
		RETFIE
;*******************************************************
START
;			.
;			.
;			.
;			.
;			.
;			.
;SETUP KISMI
;			.
;			.
;			.
;			.
;			.
;			.
;GONDERILECEK KARAKTERIN SATIR KODLARINI SATIRDATA REGISTERLERINE YUKLE
;			.
;			.
;			.
;			.
;			.
;			.
;KAYDIRMA RUTINI
SHIFT
		BCF		STATUS,C
		RLF		SATIR1DATASI,F
		RLF		SATIR1_BLOK1,F
		RLF		SATIR1_BLOK2,F
		RLF		SATIR1_BLOK3,F
		RLF		SATIR1_BLOK4,F
		RLF		SATIR1_BLOK5,F
		RLF		SATIR1_BLOK6,F

		BCF		STATUS,C
		RLF		SATIR2DATASI,F
		RLF		SATIR2_BLOK1,F
		RLF		SATIR2_BLOK2,F
		RLF		SATIR2_BLOK3,F
		RLF		SATIR2_BLOK4,F
		RLF		SATIR2_BLOK5,F
		RLF		SATIR2_BLOK6,F

		BCF		STATUS,C
		RLF		SATIR3DATASI,F
		RLF		SATIR3_BLOK1,F
		RLF		SATIR3_BLOK2,F
		RLF		SATIR3_BLOK3,F
		RLF		SATIR3_BLOK4,F
		RLF		SATIR3_BLOK5,F
		RLF		SATIR3_BLOK6,F

		BCF		STATUS,C
		RLF		SATIR4DATASI,F
		RLF		SATIR4_BLOK1,F
		RLF		SATIR4_BLOK2,F
		RLF		SATIR4_BLOK3,F
		RLF		SATIR4_BLOK4,F
		RLF		SATIR4_BLOK5,F
		RLF		SATIR4_BLOK6,F

		BCF		STATUS,C
		RLF		SATIR5DATASI,F
		RLF		SATIR5_BLOK1,F
		RLF		SATIR5_BLOK2,F
		RLF		SATIR5_BLOK3,F
		RLF		SATIR5_BLOK4,F
		RLF		SATIR5_BLOK5,F
		RLF		SATIR5_BLOK6,F

		BCF		STATUS,C
		RLF		SATIR6DATASI,F
		RLF		SATIR6_BLOK1,F
		RLF		SATIR6_BLOK2,F
		RLF		SATIR6_BLOK3,F
		RLF		SATIR6_BLOK4,F
		RLF		SATIR6_BLOK5,F
		RLF		SATIR6_BLOK6,F

		BCF		STATUS,C
		RLF		SATIR7DATASI,F
		RLF		SATIR7_BLOK1,F
		RLF		SATIR7_BLOK2,F
		RLF		SATIR7_BLOK3,F
		RLF		SATIR7_BLOK4,F
		RLF		SATIR7_BLOK5,F
		RLF		SATIR7_BLOK6,F

;ILK KAYDIRMA ADIMI BITTI
;BUNU SATIR SATIR EKRANA GONDER VE TEKRAR KAYDIR VE TEKRAR GOSTER
;BU DONGUYU 6 DEFA TEKRARLAYINCA 5X7 FONTUNDA (6. SI BOSLUK) ILK HARFI
;EKRANA KAYARAK CIKARMIS OLURSUN.6 ASAMALI KAYDIRMA TAMAMLANINCA
;YENI HARFIN KODLARINI SATIRDATA REGISTERLERINE YUKLE VE AYNI DONGUYE TEKRAR GIR 
;HER DONGUYE GIRISINDE EKRANDA BIR HARF KAYACAKTIR
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

bilgehansahin84

Arkadaşlar PIC BASIC deki mesala deger değişkeninin bit lerine kolayca şu komutla hükmedebiliyoruz : deger.5=1 (mesela deger değişkeninin 5. bitini 1 yap)

Peki PIC C de bunun karşılığı ne?
Önceki kullanıcı adım : bilgehansahin84  ALLAH (c.c) kimseye kaldıramayacağı yükü yüklemez. İnsan bu düşünce ile hareket ederse, 'PES' etmek üzere olduğu tüm işlerinden başarıyla ayrılabilir.

XX_CİHAN_XX

Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.