proton'da değişken

sadoazb

Üye
Katılım
26 Ara 2009
Mesajlar
154
Puanları
1
Yaş
52
Kod:
Device=16F877
XTAL 4

Dim s1 As word
Dim s2 As word
Dim s3 As word
Dim s4 As word
Dim ts 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: 
s1=2
s2=3
ts=s1+s2

'Print At 2,sutun,@ ts	      'KOD'u decimal olarak ekranda göster

DelayMS 200
GoTo sonuc


'.................................................................................................




sonuc:
cls
print at 1,1,"sonuc"
print at 2,1, ts

DelayMS 200
GoTo BASLA






end

bu kodda elde ettigim ts değişkeninin değerini başka bir bölümde
lcd'ye gönderemiyorum...
global değişken olayı protonda varmı

veya veriyi bir yere kaydedip ordan tekrar alabilirmiyiz..
Eread
EWrite ile bir şeyler buldum ama tam çözemedim

teşekkürler
 
S.A.
Sn. arkadaşım birde şunu dene
Kod:
Device=16F877
XTAL 4

Dim s1 As word
Dim s2 As word
Dim s3 As word
Dim s4 As word
Dim ts As word
Dim SONUC 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: 
s1=2
s2=3
ts=s1+s2

Print At 2,1, Dec ts	      'KOD'u decimal olarak ekranda göster

SONUC = ts

DelayMS 200

Gosub sonuc

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




sonuc:

print at 1,1,"sonuc"
print at 2,1, Dec SONUC

DelayMS 200
Return
 
bayrak yarışı gibi birşey olmuş bu, "ts" yoruldu, "sonuc" ile devam..register içeriklerinin kendi kendine değişmesi ciddi bir problem, sebebini anlamak gerek, daha komplex bir programda böyle
birşey olursa, saç-baş yoldurur.

S.A.
Sn. tyıldızak bu bir bayrak yarışı değil sadece arkadaşa taşıma sırasında değişkenleri nasıl eşitleyeceğini göstermek amacıyla yaptım.
Daha önce direk "ts" yi kullandım ama arkadaş burada başka bir prog. akışında başka bir değişkeni de eşitleyebilir diye algılaması için bu işlemi yaptım. Maksat karmaşa oluşturmak değildi arkadaşın prog.undaki hatayı istediği şekilde düzeltmek istedim. :)
 
selamlar, yanlış anlaşılmasın, amacım sadece yazmaç içeriğinin yeni bir değer yazılmadan kendiliğinden değişmesinin ciddi bir aksaklık olduğuna dikkat çekmekti.
iyi çalışmalar dilerim
 
cevaplar için teşekkürler arkadaşlar bir sorum daha olacak
php ve diğer birçok yazılım programlarında değişkenler ile ilğili şöyle bir olay
var

d1=1
d2=4
d3=6
d4=d1.d2.d3

d4=146 olacaktır..

2 değişkeni yan yana . ile veya benzer şekillerde koyup başka bir değişkene
atama yaptığımızda değişkenleri birleştirir

protonda benzer bir olay mümkünmüdür

teşekkürler
 
;word için

dim WRD as word

dim d0 as WRD.lowbyte ; ya da WRD.byte0
dim d1 as WRD.highbyte ; WRD.byte1

;bu şekilde, birleşecek byte'ları (d0,d1) WRD değişkeninde birleştirebilirsin

;__________________


;dword için :


dim DW as dword

dim d0 as DW.byte0
dim d1 as DW.byte1
dim d2 as DW.byte2
dim d3 as DW.byte3


;bunun gibi:

dim DW as dword

dim d0 as DW.word0
dim d1 as DW.word1

;de olabilir
 
Son düzenleme:
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
 
selamlar, yanlış anlaşılmasın, amacım sadece yazmaç içeriğinin yeni bir değer yazılmadan kendiliğinden değişmesinin ciddi bir aksaklık olduğuna dikkat çekmekti.
iyi çalışmalar dilerim


S.A.
Sn. Yıldızak yanlış anlamadım inceliğiniz için teşekkür ederim. Size böyle bir izlenim verdiysem kusura bakmayın :( . Kolay gelsin. :)
 

Forum istatistikleri

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

Yeni konular

Geri
Üst