LOOK UP TABLE?

Başlatan MICROCEBEL, 12 Ocak 2006, 22:59:19

MICROCEBEL

Selamün aleyküm arkadaşlar;

LCD için assembly ile program yazdım ve 16F84 kullandım.Yazıları sırayla yazdırmak için PCL yi kullandım 8 defa.Fakat şaşırdığım nokta şu LCD ye yazdırmak için PCL yi 4'üncü kullandığım kısma gelince ise yazıyı bir anlık yazdırıyo sonra kaldığı yerden ilerlemeyip en başa dönüyo yani bildiğim kadarıyla PCL 256 değerine ulaşıyo burada PCLATH ın değerini bir arttırmak gerekiyo galiba.Ben bu kısmı anlayamadım yani başka bir sayfayamı geçicez peki tekrar PCL nin değeri 256 olunca ne yapıcaz ve PCLATH ın değerini nasıl 1 arttırıcaz bana bu konu da açık bi şekilde örneklerle bilgi verirseniz iyi olur.Çalışmalarınızda başarılar arkadaşlar...

CaFFeiNe

sanırım tablon tam 256baytlık iki blok arasında kalıyor
tablonun program içerisindeki yerini değiştirip deneyebilirsin

Petek

Alıntı yapılan: "MICROCEBEL"Selamün aleyküm arkadaşlar;

LCD için assembly ile program yazdım ve 16F84 kullandım.Yazıları sırayla yazdırmak için PCL yi kullandım 8 defa.Fakat şaşırdığım nokta şu LCD ye yazdırmak için PCL yi 4'üncü kullandığım kısma gelince ise yazıyı bir anlık yazdırıyo sonra kaldığı yerden ilerlemeyip en başa dönüyo yani bildiğim kadarıyla PCL 256 değerine ulaşıyo burada PCLATH ın değerini bir arttırmak gerekiyo galiba.Ben bu kısmı anlayamadım yani başka bir sayfayamı geçicez peki tekrar PCL nin değeri 256 olunca ne yapıcaz ve PCLATH ın değerini nasıl 1 arttırıcaz bana bu konu da açık bi şekilde örneklerle bilgi verirseniz iyi olur.Çalışmalarınızda başarılar arkadaşlar...
PCL ile toplayacağın sayı toplandığında değerin 256 yı geçeceğini (bu toplama sonucu wreg te kalacak) anladığında (bittest carry) pclathi bir arttır (incf ) sonra wrege  ilave sanıyorum 5 gibi (aradaki işlemlerdenn kaynaklı gecikmeleri say) rakamı ekleyerek PCL e yerleştir.
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

MICROCEBEL

Örnek verin arkadaşlar hiç birşey anlamadım sadece petek arkadaşın yazdığından PCL nin 256 olacağını anladığım zaman PCLATH ı 1 arttır demiş sadece onu anladım okadar.Örnek vererek açıklayın benim için çok önemli bir şey.Teşekkürler....

Petek

Buradaki bilgi hakkında yorum yapılmamış.... Demek ki değersizmiş !!!
“Önyargıları yıkmak atomu parçalamaktan zordur” A.Einstein

bigbey

Tablonu ikiye bölmek nasıl olur. Bence tabloyu bölmen sorununu çözer.
tablo1
         addwf       pcl,f
         retlw         data
         retlw         data
         retlw         data
         retlw         data
tablo2
         addwf       pcl,f
         retlw         data
         retlw         data
         retlw         data
         retlw         data

şeklinde çoğaltabilirsin ben bu yöntemi kullanıyorum sorun yok
TA6R

MICROCEBEL

Kardeş cevabın için sağol.Bende böyle bişey kullandım dediğim gibi LCD ye yazı yazdırıyodum menü gibi bşey oluşturayım dedim 4. kullanışımda resetledi.tabloyu 2 ye böl falan demişsin biraz daha açıklasana şunu.Sağolasın...

MICROCEBEL

bigbey kardeş elinde bununla ilgili örnek varsa göndersene yada benim anlayabileceğim bi şeklde örnek oluşturabilirmisin?mail adresim(end.otomasyon@hotmail.com)

arslan74

Tablo yazmada dikkat etmen gereken en önemli konu şu;
Tabloyu programın en başlarına al. Ortalarada bir yerde tablo oluşturma. Yada başlangıç adresini kendin belirle, ondan sonra yazmaya başla.

önce
org 0x100  ;Örnek olarak yazıldı..

   addwf       pcl,f 
   retlw         data 
   retlw         data 
   retlw         data 
   retlw         data


şeklinde yazarsan sorunun çözülür. Ama bu yapmadan rastgele bir yere eklersen bu komutu o zaman nerede taşma olduğunu bilemesin.

bigbey

0.	Org	000	Başlangıç adresi
1.
2.
3.
4	org	004	Interrupt vektör adresi
5.
6.
7.
8.
9.
A.
B.	BU ALANLARI INTERRUPT VEYA BAŞKA BİR İŞ İÇİN 
C.        KULLANDIĞINI VARSAYALIM
D.
E.

	ORG	020
TABLO1
	ADDWF	PCL,F
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
TOPLAM  OLARAK FF-20 KADAR DATA YAZABİLİRSİN
SONRASINDA ;
	ORG		100		YAZARSIN
TABLO2
	ADDWF	PCL,F
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
TOPLAM  OLARAK 1FF-100 KADAR DATA YAZABİLİRSİN
SONRASINDA ;
	ORG		200		YAZARSIN
TABLO2
	ADDWF	PCL,F
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
	RETLW	DATA
TOPLAM  OLARAK 2FF-200 KADAR DATA YAZABİLİRSİN
SONRASINDA ;
BU MANTIK BÖYLECE GİDER

İSTEDİĞİN TABLOYU KULLANMAK İÇİN
TABLODAKİ DATANIN BULUNDUĞU ADRESİ W REGISTERİNE YÜKLE
VE İLGİLİ TABLOYU;          (TABLO2 DEN 10. SATIRDAKİ DATAYI İSTEYELİM ;
               MOVLW      .10
               CALL         TABLO2 DERSİN
BU SATIRDA W REGISTERI İSTEDİĞİN DATAYA SAHİP OLMUŞ OLUR
TA6R

MICROCEBEL

Tüm arkadaşlara çok teşekkürler özel olarak bigbey kardeşime çok güzel anlatmış ve çokta güzel anladım.Çalışmalarınızda başarılar...