Добрый день!
Пишу скетч под ATMega328P
В качестве отладки использую ARDUINO NANO V7
Код заливаю через USB.
В данном случае, если записать в EEPROM значение val, а потом его считать, то reg получает значение из памяти, равное val.
В дальнейшем коментирую EEPROM.write ... заливаю скетч ... и при чтении, значение reg получает 0, что в принципе и логично. Запись в память и из нее работает.
Тот же самый код заливаю в ATMega328P через SPI программатор (сделаный из той же Arduino)
И при тех же самых монипуляциях получаю следующее:
Если записать значение в память, потом закоментировать строчку с записью, залить код в МК, то при чтении из EEPROM получаю 255, а не 0
Если не коментировать запись в память, то значение считывается 0 ...
Фьюзы проверил через программатор AutoProg через SPI, правда МК пришлось выбрать ATMega168 и ATMega8, т.к. 328 пока в списке МК нет ...
Так вот, фьюзы все одинаково выставлены.
Пробовал читать и писать в память стандартными eeprom_read_byte и eeprom_write_byte ... результат тот же ....
uint16_t val = 0;
uint16_t reg;
void setup()
{
EEPROM.write(0,val);
reg=EEPROM.read(0);
}
void loop()
{
}
Что не так ?
Раздел: МК для начинающих
Пишу скетч под ATMega328P
В качестве отладки использую ARDUINO NANO V7
Код заливаю через USB.
В данном случае, если записать в EEPROM значение val, а потом его считать, то reg получает значение из памяти, равное val.
В дальнейшем коментирую EEPROM.write ... заливаю скетч ... и при чтении, значение reg получает 0, что в принципе и логично. Запись в память и из нее работает.
Тот же самый код заливаю в ATMega328P через SPI программатор (сделаный из той же Arduino)
И при тех же самых монипуляциях получаю следующее:
Если записать значение в память, потом закоментировать строчку с записью, залить код в МК, то при чтении из EEPROM получаю 255, а не 0
Если не коментировать запись в память, то значение считывается 0 ...
Фьюзы проверил через программатор AutoProg через SPI, правда МК пришлось выбрать ATMega168 и ATMega8, т.к. 328 пока в списке МК нет ...
Так вот, фьюзы все одинаково выставлены.
Пробовал читать и писать в память стандартными eeprom_read_byte и eeprom_write_byte ... результат тот же ....
uint16_t val = 0;
uint16_t reg;
void setup()
{
EEPROM.write(0,val);
reg=EEPROM.read(0);
}
void loop()
{
}
Что не так ?
Раздел: МК для начинающих