eeprom hakkında yardım

Başlatan izci, 02 Ağustos 2015, 00:40:03

izci

merhaba,  zaman adlı değişkeni word tipi olarak eeproma yazdırmayı deneyince derleyici hata veriyor
(symbol not previously defined(write)) fakat zaman adlı değişkenin veri tipini byte yapınca eeproma sıkıntısız şekilde yazılıp-okunuyor. kullandığım pic 16f628a acaba sorun nedir?


TRISA=%10111
TRISB=0
PortA=0:PortB=0
zaman var word
Read 0,zaman.Lowbyte
Read 1,zaman.Highbyte



Basla:   

if porta.0=0 then
while porta.0=0
wend     
zaman = zaman+1
write 0,zaman
pause 10
lcdout $FE,1
endif

if porta.1=0 then
while porta.1=0
wend
zaman = zaman-1
write 0,zaman
pause 10
lcdout $FE,1
endif


LCDOUT $FE,$C0,"sayi= ",#zaman
pause 50
goto basla


Burak

write 0,zaman.lowbyte,zaman.highbyte
seklinde olacak ..
Burak
Ω Gens Una Sumus Ω

izci

Alıntı yapılan: Burak GÜNAY - 02 Ağustos 2015, 07:20:34
write 0,zaman.lowbyte,zaman.highbyte
seklinde olacak ..
Burak
teşekkür ediyorum sorun düzeldi  :)

Burak

Ayni sekilde
read 0,zaman.lowbyte,zaman.highbyte
okumalarida tek komutla yapabilirsin ..

Burak
Ω Gens Una Sumus Ω

izci

peki ilk çalışmada varsayılan  değeri nasıl verebilirim değişkene   pic resetlenince   değişken ilk değeri  almasın istiyorum son değerden devam 
etsin
bu durumda değişkene sayı ataması yapmıyorum fakat pic kafasına göre bir değer atıyor
ben değer ataması yaparsam da her resette  son değeri değilde atadığım değeri alıyor

Burak

#5
Sadece programlama esnasinda istedigimiz adresleri istedigimiz degerlerle kullanmak icin
data @address,deger1
seklinde bir komut kullanabilirsin ...

Burak
Ω Gens Una Sumus Ω

izci

Alıntı yapılan: Burak GÜNAY - 02 Ağustos 2015, 15:49:52
Sadece programlama esnasinda istedigimiz adresleri istedigimiz degerlerle kullanmak icin
data @address,deger1
seklinde bir komut kullanabilirsin ...

Burak
data @0,7000 yazınca hata veriyor data @0,70,00 yazınca ise sadece 70 yazıyor   7000 değerini nasıl vermem gerekiyor?

Burak

Sadece 70 yazmıyor .. Adresler 8 bitlik verilerle doldurulabilir , dolayısıyla senin eksik olduğunu iddia ettiğin iki adet sıfır değeri EEPROM'un 1. adresine kaydırılıyor (Tabi yazmaya data @0 şeklinde sıfırıncı adresten başlamışsan ..)

Burak
Ω Gens Una Sumus Ω

enginkanat

sayi var word
sayi = 7000
data 0, sayi.lowbyte
data 1, sayi.highvyte

şeklinde kullanırsanız 0 numaralı adrese sayi değişkeninin ilk iki değeri yani "00", 1 numaralı adrese "70" değeri kaydedilir. okuma yaparken de

read 0, sayi.lowbyte
read 1, sayi.highbyte

şeklinde kullanabilirsiniz.

Powered by EzPortal