Eeprom adresleme yöntemi?

Başlatan ziyaretci, 12 Haziran 2012, 00:37:28

ziyaretci

merhaba;

  eeprom a veri yazarken ve çekerken dizi adresleme yöntemi mi kullanılıyor?

örnek

00  :  FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF

  bu eeprom adresine veri yazarken   00[3]= 7E   vs. vs. örnektir.   Bu gibimi yani ?

yasinkir55

Hayır, EEPROM bilgi cekerken veya yazdırırken dizi mantığı ile yapılmaz. İlk olarak yazdırmak istersen verileri örnek FF bu bilgi değişkene atayalım veri=FF; gibi, sonrasında gönderilecek olan EEPROM'un kaçıncı adresine kaydedeceksen o adresi belirleyeceksin, Sıra ile kaydetmek istersen i değişkeni verelim her seferinden birer birer artıralım. i++; olarak verileri sırayla EEPROM adresine yollayalım.

if(input(pin_a1))             // Kontrol sizde olsun diye RA1 Bağlı butona basıldı zaman kaydetsin.
{
write_eeprom( i, veri); // i değeri her seferinden artacak ve her bilgi gönderilince o adrese kaydedilecek.
i++;                              // i değerini (kaçıncı adres)bilgisini artıriyor her seferinde.
}



Bu kaydedilen verilerin geri adreslerinden cağırılarak bir değişkene eşitlenmesi şu şekilde kontrol bizde olsun buton koyalım anlayış acısından.

if(input(pin_a2))          // RA2 basıldı zaman değerleri okusun.
{
veri_al=read_eeprom(k);
}


"K" burada adres olarak kacıncı adresteki bilgiyi cağırıyorsak onun adresini bildiriyoruz bu adresten veri cekilerek veri_al değişkeninin icerisine atılıyor. K değerinin  artırması size kalmış birşey onu artık program içerisinden nasıl ve ne şekilde veri çekeceksen ona göre yazılımını yazmak size kalıyor.

Benim anladım bu kadar sorunuzdan bunu anladım. Yardımcı olmaya çalıştım. :)
Üniversite'de Benden Yardımını Esirgemeyen Sn. Serdar ÇİÇEK Hocama Çok Teşekkür Ederim. Bu Seviyeye Gelmemde Yardımları Kişisel Olarak Gelişmemde Hocama Tekrardan Çok Teşekkürlerimi Sunarım :)

ziyaretci

#2
Alıntı yapılan: yasinkir55 - 12 Haziran 2012, 02:56:44
Hayır, EEPROM bilgi cekerken veya yazdırırken dizi mantığı ile yapılmaz. İlk olarak yazdırmak istersen verileri örnek FF bu bilgi değişkene atayalım veri=FF; gibi, sonrasında gönderilecek olan EEPROM'un kaçıncı adresine kaydedeceksen o adresi belirleyeceksin, Sıra ile kaydetmek istersen i değişkeni verelim her seferinden birer birer artıralım. i++; olarak verileri sırayla EEPROM adresine yollayalım.

if(input(pin_a1))             // Kontrol sizde olsun diye RA1 Bağlı butona basıldı zaman kaydetsin.
{
write_eeprom( i, veri); // i değeri her seferinden artacak ve her bilgi gönderilince o adrese kaydedilecek.
i++;                              // i değerini (kaçıncı adres)bilgisini artıriyor her seferinde.
}



Bu kaydedilen verilerin geri adreslerinden cağırılarak bir değişkene eşitlenmesi şu şekilde kontrol bizde olsun buton koyalım anlayış acısından.

if(input(pin_a2))          // RA2 basıldı zaman değerleri okusun.
{
veri_al=read_eeprom(k);
}


"K" burada adres olarak kacıncı adresteki bilgiyi cağırıyorsak onun adresini bildiriyoruz bu adresten veri cekilerek veri_al değişkeninin icerisine atılıyor. K değerinin  artırması size kalmış birşey onu artık program içerisinden nasıl ve ne şekilde veri çekeceksen ona göre yazılımını yazmak size kalıyor.

Benim anladım bu kadar sorunuzdan bunu anladım. Yardımcı olmaya çalıştım. :)





Teşekkür ederim @yasinkir55 

  şimdi ben biraz ezbere soru sordum.

eeprom programlayıcım var.  Pc ara programında görüntü

  00 : FF   FF   FF   FC   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF
  01 : FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   FF   (FF ler boş biliyorsunuz)

00 adresindeki 4.  bilgiyi yani FC  bunu buradan okumak veya FF iken FC yi oraya yazmak  nasıl yani bir örnek istiyorum verebilirseniz sevinirim.



Düzeltmek gerekirse şöyle sorayım eeprom daki adresleme sırası 01 02 03 04 05 .... bumu yani

taso

bir kac karışıklık var sanırım


      0 1 2 3 4 5
00: ff ff ff ff ff fc ff ff

00 adresteki 5 ci bilgi değil  direk 5ci adress    epromm ramle aynıdır 2 farkı var yazma ve okuma ıcın rutini var birde enerji gidince unutmaz :))

ayrıca ff ler boş değiller 255 e tekabül ederler signed olarak çekersende -1 oluverir :))

kolay gelsin iyi çalışmalar


void main(){

eeprom_write(5,0xfc);  //bir dongunun içine yamassan iyi edersin yoksa eprom zamanla aşınır :))

while(1);


}