Добрый день. Помогите решить проблему, это мой первый опыт программирования под Arduino, возможно что-то делаю не так. Использую стандартную библиотеку EEPROM. Arduino UNO китайская с алика на CH340G (Если это имеет значение). Собрал устройство, которое может работать в разных режимах. Режим выбирается в процессе работы и "запоминается" в EEPROM, чтобы после перезагрузки девайс запустился в последнем выбранном режиме. Запись EEPROM.write() происходит без проблем, а вот с read() возникли сложности. Поместил чтение в Setup(). Включаю девайс - ничего не считано. При этом если я отправлю скетч на загрузку, ардуина после загрузки скетча ребутится и конфиг читается. Но после отключения питания или сброса ресетом снова пустота. Ради интереса вставил в Loop() вывод в порт Serial.write(EEPROM.length()). В мониторе порта он пишет в цикле 1024 и внезапно конфиг начал нормально читаться! Убираю - снова читается только после загрузки скетча. В какую сторону копать?
Вы читаете внутреннюю ЕЕПРОМ в Атмеге или с внешней микросхемы? Китайские Ардуино, как правило, используют китайские же совместимые аналоги Атмег, различия иногда можно определить чисто внешне, по маркировке на корпусе. Зато у них и отдельная готовая плата оказывается по цене дешевле оптовой партии контроллеров от Атмела. Но возможны нюансы в работе. Выложите что ли скетч заодно, чтобы убедиться, что в логике программы нет ошибок.