Проблема с записью в EEPROM
- Войдите на сайт для отправки комментариев
Вс, 29/12/2013 - 02:54
Загружаю скетч, все работает как надо:
#include <EEPROM.h>
void setup()
{
Serial.begin(9600);
}
void loop()
{
//Записываем в ячейку 1 число "5"
String str="345";
char j=str[2];
int x = int(j); //Преобразуем из char в int
EEPROM.write(1, x);
//Считываем и посылаем на ПК
int k = EEPROM.read(1);
Serial.println(k);
delay(1500);
}
Если закомментировать строки 8-12, т.е. оставить только считывание, то возвращается 255 (тоесть ничего не записано). Подскажите как исправить?
#include <EEPROM.h> void setup() { Serial.begin(115200); } void loop() { //Записываем в ячейку 1 число "5" String str="345"; char j=str[2]; Serial.println(j,HEX); int x = j-48; //Преобразуем из char в int // а точнее в HEX вернее в один байт //int x = j- '0'; // Или так если понятнее Serial.println(x,HEX); EEPROM.write(1, x); //Считываем и посылаем на ПК int k = EEPROM.read(1); Serial.println(k,HEX); Serial.println(); delay(5000); }http://fusecalc.mirmk.net/help/help03.htm
Спасибо за подсказку! Я прошивал атмегу через AVRdude, а не через бутлоаддер. Задействовал бит EESAVE (HIGH 0xD2), теперь EEPROM не стирается при каждой прошивке.