Тест памяти EEPROM на битые ячейки

04.02.2018 14:37

genaonyx



Описание

Приветствую вас, сегодня я делюсь с вами моим тестом, а точнее тестами энергонезависимой памяти EEPROM на наличие битых или испорченных байтов.  На мой взгляд, полезный тест на проверку работоспособности памяти EEPROM после долгой эксплуатации, а так же проверка, если ваши данные, настройки и прочее начали неожиданно сбиваться.


Скетч

#include "EEPROM.h"

void setup()
{
  byte eData, tData1, tData2, tData3  = 0;
  Serial.begin(9600);
  Serial.println("Arduino EEPROM Test v1.0");
  Serial.println("http://arduino.on.kg");
  // Проходим в цикле всю память EEPROM.
  for (int i = 0; i < EEPROM.length(); i++)
  {
    // Запоминаем то, что записано в EEPROM.
    eData = EEPROM.read(i);
    // Записываем в ячейку EEPROM нули.
    EEPROM.write(i, 0);
    tData1 = EEPROM.read(i);
    if (tData1 != 0)
    {
      Serial.print("Cell ");
      Serial.print(i);
      Serial.println(" is corrupted (Test 1).");
      continue;
    }
    // Записываем в ячейку EEPROM единицы.
    EEPROM.write(i, 255);
    tData2 = EEPROM.read(i);
    if (tData2 != 255)
    {
      Serial.print("Cell ");
      Serial.print(i);
      Serial.println(" is corrupted (Test 2).");
      continue;
    }
    // Восстанавливаем данные в EEPROM.
    EEPROM.write(i, eData);
    tData3 = EEPROM.read(i);
    if (tData3 != eData)
    {
      Serial.print("Cell ");
      Serial.print(i);
      Serial.println(" is corrupted (Test 3).");
      continue;
    }
  }
  Serial.println("The test is completed.");  
}

void loop()
{
  // Пустой цикл.
}


Расскажи о нас

Сообщение

Если у Вас есть опыт в работе с Arduino и собственно есть время для творчества, мы приглашаем всех желающих стать авторами статей публикуемых на нашем портале. Это могут быть как уроки, так и рассказы о ваших экспериментах с Arduino. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.