2014-03-08

Arduino'dan EEPROM değerlerini okuma.

Arduino'dan EEPROM değerlerini okuma.
Arduino örnekleri içinde bulunan KOD + Türkçe açıklamalar.

Arduino içerisinde üç çeşit bellek bulunur. Flash belleği kalıcı olup, program bu belleğe yüklenir.
SRAM belleği geçici olup, program çalışması sırasında değişkenleri tutmak için kullanılır.
EEPROM belleği kalıcı olup, adres bazlı okuma ve yazmaya izin verir. Küçük log'lar, sıralı işlemler için kullanılabilir.


/*
 * EEPROM okuma
 
 EEPROM (Electronically Erasable Programmable Read-Only Memory), 
 küçük boyuttaki verileri kalıcı olarak saklamak için bilgisayar ya da 
 diğer cihazlarda kullanılan bir yongadır. Boyutu daha büyük olan 
 sabit verileri saklamak için ise flaş bellek gibi daha ekonomik 
 yöntemler kullanılır. EEPROM, elektrikle yazılıp silinme özelliğine 
 sahiptir. Yazma/silme sayısı 100,000 ile sınırlıdır. 

 * Bu program ne işe yarar? 
 * Arduino dahili EEPOROM'un her byet'ını okur ve seri port'a yazdırır.  
 * Kamu lisanslı kod. Arduino örneklerinden
 * Eski Arduino'larda EEPROM kapasitesi 512, yenilerde 1024 byte'dır. 
 * Adresleri 0'dan başlar 511 veya 1023'e kadar devam eder.
  http://tr.wikipedia.org/wiki/EEPROM EEPROM'lar hakkında daha fazla bilgi. 
  http://nevit.blogspot.com

 */

// EEPROM kütüphanesini içer
#include <EEPROM.h>

// Başlangıç olarak 0 nolu adresten başla.  
int adres = 0;
// byte cinsinden bellekten okunan değer
byte deger;

void setup()
{
  // Seri port başlat ve bekle
  Serial.begin(9600);
  while (!Serial) {
    ; // Seri port'un bağlanmasını bekle
  }
}

void loop()
{
  // Adres hanesinden değerini okur. 
  deger = EEPROM.read(adres);
  
  Serial.print(adres); // Adres'i yaz
  Serial.print("\t"); // Sekme
  Serial.print(deger, DEC); // Değer'i yaz
  Serial.println(); // Yeni satır
  
  // EEPROM adresini bir artır.
  adres = adres + 1;
  
  // Bazı Arduino'larda sadece 512 adres, yeni olanlarda 1024 adres bulunur.  
  // son adrese gelince, adresi sıfırla,  başa dön. 
  if (adres == 1023)
    adres = 0;
    
  delay(100); // Bekleme süresi
}

Hiç yorum yok: