değişkene değer aktarma

Başlatan isikyasar, 28 Ocak 2013, 22:52:55

isikyasar

device 16f877
xtall 4

dim deg1 as word
dim deg2 as word

input portb.0

basla:

print at 1,1,dec5,deg1,"     "     'deg1 değişkenindeki veri okunuyor
print at 1,1,dec5,deg2,"     "     'deg2 değişkenindeki veri okunuyor

if portb.0=1 then
deg1=deg2    'bu alan       
end if


goto basla


analog_oku:
deg1 = ADIn 0       'portA.0 daki analog değeri deg1 değişkenine aktarma
return


yukarıdaki kalın harfli olan yerdeki olayı kısaca anlatayım.
Pic  analog girişinden gelen veriyi deg1 değişkenine aktarıyor. print komutu ile bu değer ekranda görüntüleniyor. PORTB.0 butonuna bastığımda analog değer kaç ise, o değeri deg2 değişkenine aktarıcak.
deg1 değeri yine değişecek ama deg2 değişkenine aktarılan değer birdahaki basma anına kadar aynı kalacak.

bunu nasıl halledebilirim.

F.T

zaten öyle oluyor.dediğin gibi.ama eğer girişin pullup ise sürekli eşitler ama pulldown ise butona basınca eşitler.
Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

Maxim

böyle olması lazım
ama butona bastığın süre boyunca aktarma sürecektir, bırakınca aktarma yapmayacak.


basla:
gosub analog_oku:

print at 1,1,dec deg1,"     "     'deg1 değişkenindeki veri okunuyor SATIR 1
print at 2,1,dec deg2,"     "     'deg2 değişkenindeki veri okunuyor SATIR 2

if portb.0=1 then
deg2=deg1    'bu alan       
endif

goto basla

analog_oku:
deg1 = ADIn 0       'portA.0 daki analog değeri deg1 değişkenine aktarma
return


isikyasar

device 16f877
xtall 4

dim deg1 as word
deg1=0                               '1. değişkenin başlangıç değeri 0( sıfır)
dim deg2 as word
deg2=1                               '2. değişkenin başlangıç değeri 1 ( bir)

input portb.0

basla:

print at 1,1,dec5,deg1,"     "     'deg1 değişkenindeki veri okunuyor
print at 1,1,dec5,deg2,"     "     'deg2 değişkenindeki veri okunuyor

if portb.0=1 then
deg1=deg2    'bu alan       
end if


goto basla


analog_oku:
deg1 = ADIn 0       'portA.0 daki analog değeri deg1 değişkenine aktarma
return

portb.0 butonuna bastığımda deg2 değerini, deg1 değişkenine atıyor. tam tersi oluyor.

ete

Bana kalırsa eşitliği ters yazmışsın. Yazdıklarında dikkat edersen DEG2 değeri hiç bir şekilde değişmiyor. Değişen sürekli DEG1.
Eşitlik şöyle olmalı idi bana kalırsa,

if portb.0=1 then
deg2=deg1    'bu alan       
end if

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

Maxim

@ışıkyaşar, benim yazdıklarımı okumuyormusun ?

Alıntı yapılan: Maxim - 28 Ocak 2013, 23:51:06
böyle olması lazım
ama butona bastığın süre boyunca aktarma sürecektir, bırakınca aktarma yapmayacak.


basla:
gosub analog_oku:

print at 1,1,dec deg1,"     "     'deg1 değişkenindeki veri okunuyor SATIR 1
print at 2,1,dec deg2,"     "     'deg2 değişkenindeki veri okunuyor SATIR 2

if portb.0=1 then
deg2=deg1    'bu alan       
endif

goto basla

analog_oku:
deg1 = ADIn 0       'portA.0 daki analog değeri deg1 değişkenine aktarma
return

isikyasar

MAXİM TEŞEKKÜRLER.

deg2=deg1

bu olayın bu şekilde olmasının nedeni nedir.

ete

Bir eşitlikte değeri yenilenecek olan solda değeri ,diğerine aktarılacak olanda sağda yer alır. Sebebi bu.
İlk mesajında açık açık yazmışsın,
DEG1 ADC okumasından değer alacak, DEG2 ise Butona basılınca DEG1 den değer alacak diye.
Ohalde Butona basılınca Deg2 (Yeni değer alacak olan)=Deg1 (Değerini aktaracak  olan)
Gördüğün gibi eşitliklerde yeni değer alacak olan daima sola yazılır.
Deg1=Deg2 denildiği zaman anlaşılacak şey şudur. Deg1 yeni değer olarak deg2 den değer alacak.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

isikyasar

teşekkürler.

verdiğiniz bilgiler için

isikyasar

if portb.0=1 then
1 = sayi
EWrite 10,[sayi]         
DelayMS 100
else
0= sayi
EWrite 10,[sayi]         
DelayMS 100
end if

işaretli yerler neden olmuyor. rakam olarak 1 veya 0 değerini değişkene aktarmak istiyorum.

F.T

Hakk şerleri hayr eyler Zannetme ki gayr eyler Ârif anı seyreyler Mevlâ görelim neyler Neylerse güzel eyler.

isikyasar

teşekkürler.
sabahtan beri kod yazıyorum. kafa durdu artık. 1+1=4 diyesim geliyor. :-)

yatma vakti geldi de geçti sanırım.

ete

Bir değişken değişik sayı değerlerini saklayabilen bir hafıza birimidir. Bunu bir boş kutu gibi düşümürseniz kutuya 10 koyarsanız sonradan kullanmak üzere saklar. Bir sayının kendisi  ise sabit değer ifade eden bir birimdir ve değişken gibi kullanılamaz. Mesela 3 sayısı değeri 3 olan bir sayı birimidir bir hafıza birimi değildir. 3 sayısına farklı bir değer atayamayız. O halde değer atanabilecekler yalnızca değişkenler olmsktadır. Bu nedenle 1=sayı yani sabit sayı değerine değişken atama şeklini kullanamayız. Ama sayı=1 şeklinde kullandığımız zaman sayı isimli hafızaya 1 yerleştşrmiş oluruz Ki bu doğru bir işlem olur. 
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

isikyasar

teşekkürler ETE.
geçen gece kafa durdu sanki.şimdi gülüyorum yazdığım mesaja.