Проблема чтения EEPROM

Тема в разделе "Arduino & Shields", создана пользователем Digital Fox, 22 мар 2017.

  1. Digital Fox

    Digital Fox Нуб

    Добрый день.

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

    Использую стандартную библиотеку EEPROM. Arduino UNO китайская с алика на CH340G (Если это имеет значение).
    Собрал устройство, которое может работать в разных режимах. Режим выбирается в процессе работы и "запоминается" в EEPROM, чтобы после перезагрузки девайс запустился в последнем выбранном режиме.

    Запись EEPROM.write() происходит без проблем, а вот с read() возникли сложности.

    Поместил чтение в Setup(). Включаю девайс - ничего не считано. При этом если я отправлю скетч на загрузку, ардуина после загрузки скетча ребутится и конфиг читается. Но после отключения питания или сброса ресетом снова пустота.

    Ради интереса вставил в Loop() вывод в порт Serial.write(EEPROM.length()).
    В мониторе порта он пишет в цикле 1024 и внезапно конфиг начал нормально читаться!
    Убираю - снова читается только после загрузки скетча.

    В какую сторону копать?
     
  2. Faberge

    Faberge Administrator Администратор

    Вы читаете внутреннюю ЕЕПРОМ в Атмеге или с внешней микросхемы? Китайские Ардуино, как правило, используют китайские же совместимые аналоги Атмег, различия иногда можно определить чисто внешне, по маркировке на корпусе. Зато у них и отдельная готовая плата оказывается по цене дешевле оптовой партии контроллеров от Атмела. Но возможны нюансы в работе. Выложите что ли скетч заодно, чтобы убедиться, что в логике программы нет ошибок.
     
  3. Digital Fox

    Digital Fox Нуб

    Читаю внутреннюю память. Скетча сейчас под рукой нет, выложу вечером