eeproma yazma

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

elektroacemi

Evet bende şimdi gerçek devrede denedim oldu...
Teşekkürler

ete

#16
I2C epromlara direk word değişkeni ile yazabilirsiniz ama dahili eproma yazamazsınız. Proton kullanmadığım için emin değilim ama PBP da kesin mümkün değildir.

Ete

Edit: Proton kullanım klavuzuna baktım Word değişkeni direk yazılabiliyormuş.

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

Mucit23

Sanırım Protonda eepromdan word tipi değişkene veri okuyunca verilen adresi ve bir sonraki adresi okuyor sırayla. Dword olursa sıra sıra 4 bayt lık adresi okuyor. Pic Basicde ayrı ayrı okuma yapılması gerekiyor.

imuhtar

#18
gerçekte çalışan denendi
Dim Address As Byte
Dim T As Dword
t=1000000  '4 byt yerkaplıyor
For Address = 0 To 64 Step 4 '0 ve 3 üncü adrese yazıldı
EWrite Address, [t] 
Next
DelayMS 10
okurkende 
T=ERead 0
..............................................
eğer 4 üncü adresten başlıyacaksan
For Address = 4 To 64 Step 4     '4 ve 7 incü adrese yazıldı
EWrite Address, [t] 
Next

okurkende 
T=ERead 4

elektroacemi

Ben gerçek devrede protonla yaptrım, 16 bitlik değişkeni (word) direk yazdım okudum, hiç bir sorun çıkmamıştı, bir sabah çalıştırdım, 1000 ve katları yazması gereken deger çok farklıydı. yazılımla düzeltim, sürekli gerilimi kesip tekrar verdim. bir süre sonra gene tutarsız değerler almaya başladı, diğer eeprom dan yaptığım okumalarda ve yazmalarda hiç sorun yoktu, sadece 16 bitlik değerde oluyordu, 2 saat uğraştım, en sonunda 16 biti 8 bit -8 bit şeylinde ayrı yazıp okudum sorun düzeldi...

FUNKY

aklıma gelen bir soruyu musadenizle burada sormak istiyorum .....

bir adrese yazdık . okuduk .değerleri değiştirdik  aynı adrese yazmak istediğimde  ." bu adres dolu  üzerine yazayımmı " gibi uyarı yapmak istesek . adresin boş veya dolu olduğunu nasıl anlarız...aklımageldi soruyorum cevaplarsanız sevinirim...birgün mutlaka lazım olacaktır...


ete

İki türlü yapılabilir.
Birincisi boş eprom 255 değerini taşır. Ancak biraz sakıncalı. Çünkü aynı adrese 255 değerinide kayıt etmek isteyebilirirsin.
Ancak 255 kayıt isteği her halde nadirdir. Bu nednele adresteki kayıda bakarsın 255 ise boş demektir değilse doludur.

Bir diğer usul ise bütün kayıtların listesini tutarsın. Biraz zor ve işi uzatan bir yöntem ama akıllıca bir yöntemle yapılabilir.
Hafızanın 256 byte (0-255) olduğunu farz edersek. Toplam 32 adet byte tipi değişkenle 256 adet adresin kaydını tutabilirsin.
0-7 arasını 1 nolu değişken tutar. Kayıt1  isimli değişkeni kullandığımız varsayalım.

Hiç kayıt yapılmamış ise Kayıt1=%00000000
ilk 3 adrese kayıt yapılmış ise  Kayıt1=%00000111 şeklinde kayıtlar tutulabilir.
Dahada kolayı var sanırım.  Kayıt isimli (33) elemanlı bir değişken kullanırsın. 33 sayısı burada index değişkenidir.
Diyelimki 147 nolu adrese bakacağız. 147/8=18 index numaramız 18 olacaktır. O halde çözüm,
Temp=KAYIT[18] peki hangi bite bakacağız 18*8=144 bizim kayıt numaramız 147 olduğuna göre 147-144=3 nolu bite bakacağız.
IF TEMP.0[3]=1 then
    kayıt dolu
else
    kayıt bos
Endıf
şeklinde halledilebilr.

Ete


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

FUNKY

ete hocam teşekkürler....

OG

Alıntı yapılan: ete - 08 Haziran 2012, 19:03:49
I2C epromlara direk word değişkeni ile yazabilirsiniz ama dahili eproma yazamazsınız. Proton kullanmadığım için emin değilim ama PBP da kesin mümkün değildir.
Ben, PBP da da yazılıyor sanıyordum (öyle hatırlamışım). Geçmiş mesajlardan birinde bir arkadaşı yanılttım, hakkını helal etsin.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.