proton'da değişken

DW' is a PROTECTED keyword used by the compiler or assembler, and cannot be used at this position! ***
protonda bu hatayı veriyor??

teşekkürler

O değişkenin Double Word olduğunu belirtmek için DW kullandım, DW reserved words dahilindeymiş, siz başka isim verebilirsiniz, "sayı", "sayı.byte0", "sayı.word0" gibi..
 
Kod:
Device=16F877
XTAL 4


dim SAY as dword
dim d0 as SAY.byte0
dim d1 as SAY.byte1
dim d2 as SAY.byte2
dim d3 as SAY.byte3
dim sonuc as word
	
'.................................................................................
Declare LCD_DTPIN PORTC.4		'DATA girişi PORTC'nin 4. ucundan başlayacak
Declare LCD_ENPIN PORTC.3
Declare LCD_RSPIN PORTC.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 4			'LCD 4 satırdan oluşuyor
Declare KEYPAD_PORT PORTB		'KEYPAD'in bağlandığı port 
PORTB_PULLUPS = 1			'PORTB'nin pull-upları aktif
REMINDERS = OFF
ALL_DIGITAL = True			'bütün çıkışlar dijital
'................................................................................
'____________________________________________________________________________________________



BASLA: 
d0=1
d1=2
d2=3
d3=4

sonuc= SAY[d0,d1,d2,d3]
	

print at 1,1, @ sonuc
print at 2,1, dec2 sonuc


DelayMS 200

Goto BASLA
'.......................................................................... 


end

denememde neyi yanlış yapıyorum lcd'de 1234 görmem gerekirken
farklı rakamlar gzüküyor

bu arada proton'un helpini inceledim değişken tanımlamalarında
bu tarz bir bilği bulamadın o nedenle başınızı ağrıtıyorum kusura bakmayın

teşekkürler
 
sanırım bir karışıklık var, lcd'de yanyana görmek istediğiniz desimal sayılar zaten d0,d1,d2,d3 değişkenlerinde, bunları tek satırda print komutuyla virgül kullanarak yanyana gösterebilirsiniz, bu değişkenleri dword olarak birleştirmek niye?

d0..d3 birbirinden farklı sayılar, bunları ikilik değerlerini bir dword'ün 0-7, 8-15 ,16-23, 24-32. bitleri şeklinde ardarda dizip sonuç dword'ünü desimal olarak lcd'ye aktardığınızda göreceğiniz değer bahsi geçen byte'ların desimal değerlerinin yanyana dizilmiş hali olamaz ki zaten.

(Böyle olabilmesi için dword'un binary coded decimal yapısında olması gerekir ama değil)

diyelim ki:

d0= 45 (00101101)
d1=230 (11100110)
d2=16 (00010000)
d3=112 (01110000)

bunları birleştirince elde ettiğimiz dword:

01110000000100001110011000101101

bunun ondalık gösterimi ise 1880155693 olur.

Eğer yapmak istediğiniz anladığım şeyse, değişkenleri ekrana dec d0," ",dec d1," "...vs şeklinde yazdırmalısınız.

kolay gelsin
 

Forum istatistikleri

Konular
128,442
Mesajlar
917,664
Kullanıcılar
450,373
Son üye
kidorki

Yeni konular

Geri
Üst