eeproma yazma

Başlatan imuhtar, 21 Mayıs 2012, 20:20:50

imuhtar

Merhaba
8 bit yazmada eepromun bir adet adresi yetiyor.   eeproma 1 milyon sayını nasıl kayıt ederim.ya da 16 ,24 ,32 bit kayıt sırası nasıl olmalı

ete

Okumayıda sen belirleyeceğine göre sıralama keyfine göre olabilir. Ancak işlemciler bunu en büyük byte dan en küçük byte kadar yaparlar.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

imuhtar

Hocam 1 milyon sayısı için örnek vermeniz mümkünmü  ???

ete

1.000.000 sayısının hex karşılığına bakarsan $0F4240 şeklinde bir sayı görürsün. Bu sayının hanelerini ikişer ikişer ayırırsan,
Byte3=$00
Byte2=$0F
Byte1=$42
Byte0=$40
şeklinde bölünürler.
EWRITE ADRES,BYTE3,BYTE2,BYTE1,BYTE0:DELAY 10

veya

DIM SAYI AS DWORD

SAYI=1000000
EWRITE Adres, Byte3, Byte2, Byte1, Byte0 :Delay 10

şeklinde yapmak en doğrusudur.

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

imuhtar

Ete hocam  teşekkür ederim .

elektroacemi

Alıntı yapılan: ete - 21 Mayıs 2012, 21:04:05
1.000.000 sayısının hex karşılığına bakarsan $0F4240 şeklinde bir sayı görürsün. Bu sayının hanelerini ikişer ikişer ayırırsan,
Byte3=$00
Byte2=$0F
Byte1=$42
Byte0=$40
şeklinde bölünürler.
EWRITE ADRES,BYTE3,BYTE2,BYTE1,BYTE0:DELAY 10

veya

DIM SAYI AS DWORD

SAYI=1000000
EWRITE Adres, Byte3, Byte2, Byte1, Byte0 :Delay 10

şeklinde yapmak en doğrusudur.

Ete

Sayı Byte lara nasıl ayrılıyor ?

ibrsel

Alıntı YapSayı Byte lara nasıl ayrılıyor ?

Bunun için protonda kolay bir komut var..DIG komutu...
Örneğin Sayımız Sayi=123456 olsun
A=Sayi dig0          "A=6"
B=Sayi dig1          "B=5"
C=Sayi dig2          "C=4"
D=Sayi dig3          "D=3"
E=Sayi dig4          "E=2"
F=Sayi dig5          "F=1"

yöntemi ile sayının istediğin hanesini alıp bir değişkende veya hafızada saklayabilirsin.. İyi çalışmalar..

elektroacemi

Alıntı yapılan: ibrsel - 08 Haziran 2012, 16:03:36
Bunun için protonda kolay bir komut var..DIG komutu...
Örneğin Sayımız Sayi=123456 olsun
A=Sayi dig0          "A=6"
B=Sayi dig1          "B=5"
C=Sayi dig2          "C=4"
D=Sayi dig3          "D=3"
E=Sayi dig4          "E=2"
F=Sayi dig5          "F=1"

yöntemi ile sayının istediğin hanesini alıp bir değişkende veya hafızada saklayabilirsin.. İyi çalışmalar..


Peki birleştirmek için komut var mı, örneğin 65000 ni EEPROM a yazdım, okurken byte byte okuduğum için okuduğum byte birleştirmem lazım,

elektroacemi

SAYI.Byte0= 55
SAYI.Byte1= 60

Galiba bu komutlar

ete

Word tipindeki bir değişkenin otomatik byte bileşenleri vardır zaten. Say isimli bir word değişkenin var ise bunu bileşenleri say. Byte0 ve say. Byte1 dir.
Epromdan okuduğun say. Byte0 ve say. Byte1 otomatik olarak say isimli değişkene word olarak yerleşir.
Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

ibrsel

#10
Sayıyı birleştirmek için komuta ihtiyacın yok..Bunu kolayca aşağıdaki gibi yapabilirsin..
Yukarıdaki örneğe göre açıklayacak olursak;
A=6 , B=5 , C=4 , D=3 , E=2 , F=1

Sayi=(A*100000) + ( B*10000) + ( C* 1000) + ( D * 100) + ( E *10) + ( F * 1)
Dolayısı ile sayı değişkenimiz yeniden "Sayi=123456" oldu.

( NOT : Bu mesajı yazarken ETE hocamız da açıklama yapmış zaten..Ama daha sonra okuyan arkadaşlara faydası olur diyerek silmedim..)

.. İyi çalışmalar..

Maxim

ete hocam neden byte lara ayırdınız, özel bir nedeni varmı ?
direk yazılabiliyor normalde

Dim Ahmet As Dword
Dim Mehmet As Dword
Mehmet = 1000000

EWrite 10, [Mehmet]
DelayMS 15

Ahmet = ERead 10

ibrsel

#12
@Maxim hocam BYTE den büyük değişkenleri direkt bu şekilde eeproma yazabileceğimize eminmisiniz..Denediniz mi daha önce..Şimdlik proteusta denedim ama sonuç hatalı..
1234567 sayısını EEproma 10 nolu adrese kaydediyorum. 10 nolu adresten okuduğum değeri değişkene aktarıp LCD de yazdırıyorum ama sonuç farklı..

elektroacemi

Alıntı yapılan: ibrsel - 08 Haziran 2012, 17:14:37
@Maxim hocam BYTE den büyük değişkenleri direkt bu şekilde eeproma yazabileceğimize eminmisiniz..Denediniz mi daha önce..Şimdlik proteusta denedim ama sonuç hatalı..
1234567 sayısını EEproma 10 nolu adrese kaydediyorum. 10 nolu adresten okuduğum değeri değişkene aktarıp LCD de yazdırıyorum ama sonuç farklı..

Word u direk Eeprom un iki byte na yazıyor, okumasını denemedim ama şimdi denerim

Maxim

word denedim eminim
dword proteusta denedim çalışıyor bende