У меня проблема: я могу прочитать EEPROM из моего ATtiny, но я не могу что-то написать в нем.ATtiny85 eeprom написать в arduino IDE
Вот мой код:
#include <EEPROM.h>
int addr = 0;
int val = 2;
void setup()
{
}
void loop()
{
EEPROM.write(addr, val);
addr = addr + 1;
if (addr == 512)
addr = 0;
}
-Edit
Теперь мой код на запись:
#include <EEPROM.h>
int addr = 0;
int val = 2;
void setup()
{
}
void loop()
{
EEPROM.write(addr, byte(val));
addr = addr + 1;
if (addr == 512)
while(1);
}
И мой код чтения:
int address = 0;
byte value;
#include <SoftwareSerial.h>
void setup()
{
SSerial.begin(9600);
}
void loop()
{
value = EEPROM.read(address);
SSerial.print(address);
SSerial.print("\t");
SSerial.print(value, DEC);
SSerial.println();
address = address + 1;
if (address == 512){
address = 0;
delay(100000000);
}
}
Я всегда получаю только значение 255. На каждом адресе. Теперь я конвертирую свой int в байт. Мой int не будет превышать 255 в моем случае.
И кстати: могу ли я создать int в качестве байта? Поэтому я могу использовать его как обычный int, но могу написать его напрямую?
Я получил его для работы. Но почему мне нужно мое значение для чтения? С read() я получил только 255. – SPJS01Pro
@ SPJS01Pro Вы должны использовать старую версию IDE, мой EEPROM lib заменил оригинал в версии 1.6.2 и выше. Сюда входят get, put и length. Что касается получения 255 для каждого чтения, это значение является значением по умолчанию/очищенным для ячейки EEPROM, поэтому оно не выглядит так, как будто все было написано. В вашем «написать эскиз» добавьте в 'SSerial.println (EEPROM.read (addr), DEC);' чтобы убедиться, что вы что-то написали. –
Я попробую. Большое спасибо! – SPJS01Pro