Что такое eeprom?

Тема в разделе "Arduino & Shields", создана пользователем РоманИ, 12 мар 2016.

  1. РоманИ

    РоманИ Нерд

    Уважаемые знатоки! Правильно ли я понял что такое EEPROM? Атмел 328 - это 1024 числа(ввиде байта памяти ЕЕПРОМА), каждое из которых имеет значение от 0-255, по умолчанию значение 255. Эти числа могут быть изменены пользователем или программно на другое значение и использованы в ходе исполнения скетча? Везде вроде по русски написано, но если с этим не сталкивался , то не всё понятно.
     
  2. Megakoteyka

    Megakoteyka Оракул Модератор

    Это энергонезависимая память. То, что туда записано, сохраняется после отключения питания. А в ходе исполнения скетча данные хранятся в ОЗУ.
     
    atompost нравится это.
  3. Sindbad

    Sindbad Гик

    да.
    забыли написать про самое главное свойство - эти числа не меняются при отключении питания или сбросе микроконтроллера.
     
  4. Tomasina

    Tomasina Сушитель лампочек Модератор

    Это 1024 ячейки, в каждую из которых можно записать положительное число от 0 до 255. При выключении питания или reset информация в них остается.
    Гарантированное количество циклов записи - 10000. Это 13,5 лет, если записывать дважды в сутки, либо 40 секунд, если записывать непрерывно, поэтому к операции программирования записи в EEPROM надо подходить аккуратно, а перед записью лучше проверить - а надо ли сейчас записывать в EEPROM?
     
  5. Limoney

    Limoney Гик

    Отрицательное число не исключение. EEPROM удобно использовать, например, сохранение, каких либо калибровок датчиков или настроек программы.
     
  6. Tomasina

    Tomasina Сушитель лампочек Модератор

    приведите пример кода для записи числа -252 в 18-ю ячейку, не затрагивая других. ;)
     
  7. Sindbad

    Sindbad Гик

    -252 в дополнительном коде занимает девять бит, а в ячейке только восемь. С таким же успехом можно попросить записать в ячейку 1000 (тысяча десятичная), не затрагивая других.
     
  8. Megakoteyka

    Megakoteyka Оракул Модератор

    Просто нужно говорить не о записи чисел в ячейку, а о записи байтов. Если число весит 2 байта, то оно займет 2 ячейки и пофиг, положительное оно или отрицательное. Если число с плавающей точкой - тоже не проблема, смотрим, сколько оно весит и точно так же пишем его. Такая же фигня со структурами. А можно в одном байте и несколько чисел хранить.
    Память измеряется в байтах, а о числах уместно говорить в контексте переменных.
     
    Tomasina нравится это.
  9. Limoney

    Limoney Гик

    Можете заранее выделить необходимое число байтов под тип переменной. И записывать любое значение. Все равно вы должны помнить, какой формат представляют числа, нет конкретно приема определения, что храниться в ячейке: число без знака или число со знаком.
     
    Последнее редактирование: 16 мар 2016
  10. Karabas

    Karabas Гик

    С записью понятно, а вот что у них с чтением. Изнашиваются ли ячейки при чтении из них?
     
  11. Megakoteyka

    Megakoteyka Оракул Модератор

    Нет.