библиотека EEPROM

Тема в разделе "Arduino & Shields", создана пользователем Sindbad, 25 фев 2016.

  1. Sindbad

    Sindbad Гик

    Кто-нибудь может подсказать, где взять полноценную библиотеку для работы с EEPROM?
    Т.е. соответствующую описанию https://www.arduino.cc/en/Reference/EEPROM
    Вместе с IDE 1.7.7 для Виндовз установилась библиотека, в которой есть только функции write() и read().
     
  2. ostrov

    ostrov Гуру

    Не знаю про 1.7.7, но в 1.6.6 точно все функции есть и работают.
     
    Sindbad нравится это.
  3. Sindbad

    Sindbad Гик

    Да, на 1.6.7 библиотека заработала. Действительно, скачав IDE с arduino.org наивно было ориентироваться на описания библиотек с arduino.cc.
     
  4. Unixon

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

    Ну а что вы еще можете сделать с EEPROM ?

    Да, в новых версиях навалили синтаксического сахара, который в итоге упирается ровно в то же самое, что и раньше - в обертку для eeprom_*_byte().
    Код (C++):

    uint8_t EEPROMClass::read(int address)
    {
      return eeprom_read_byte((unsigned char *) address);
    }

    void EEPROMClass::write(int address, uint8_t value)
    {
      eeprom_write_byte((unsigned char *) address, value);
    }

    EEPROMClass EEPROM;
     
    Ради чего, спрашивается, было городить библиотеку?
     
  5. ostrov

    ostrov Гуру

    put() хорош тем, что проверяет перед записью надо ли вообще записывать, то есть как бы экономит ресурс памяти.
     
  6. Sindbad

    Sindbad Гик

    Ну уж. В новых версиях как раз то, что и должно быть в библиотеке. put() и get() позволяют абстрагироваться от байтов и писать/читать одной командой любые данные, в т.ч. структуры. Если бы этих функций не было, их все равно пришлось бы самостоятельно писать почти для каждого скетча использующего EEPROM.
     
  7. Unixon

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

    Ну, так... небольшая низкоуровневая оптимизация. Так то правильнее на уровне архитектуры приложения принимать решение о перезаписи.

    Тут главное - за картой памяти уследить :)
     
  8. Oleg_7

    Oleg_7 Гик

    Добрый всем день! нигде не могу найти библиотеку "eeprom.h", подскажите, может у кого такая имеется???......
     
  9. ostrov

    ostrov Гуру

    В
    Входит в состав IDE.
     
  10. Oleg_7

    Oleg_7 Гик

    при компиляции выдает: fatal error: EEPROM.h: No such file or directory. В папке с либами ее нет, в какой папке она должна лежать??
     
  11. vvr

    vvr Инженерище

    дык переустановите библиотеку и делов то))