Доброго всем добрым котам. Не добрым -- не доброго
Вопрос по явному заданию адреса для циклического чтения (ну и записи) в EEPROM при работе со стандартной библиотекой eeprom.h
функция чтения байта из памяти там выглядит таким образом
Код:
uint8_t eeprom_read_byte (const uint8_t *__p) __ATTR_PURE__;
Если я правильно понимаю, то в функции используется указатель на адрес ячейки в EEPROM. Мне необходимо инициализировать начальную ячейку адресного пространства 0x0010 и последовательно читать до адреса 0x01FF (512 байт памяти). И вопрос собственно в организации адресации. Поскольку памяти 512 байт, то для адресации надо использовать двухбайтную переменную, в то время, как для указателя функция требует однобайтное значение. Как это правильно сделать, насколько корректно то, что я наваял?
Код:
uint8_t get_status(void)
{
int ee_byte = 0x010;
uint8_t *ee_byte_Ptr;
ee_byte_Ptr = &ee_byte;
flag_CLOSE = eeprom_read_byte(*ee_byte_Ptr); // начальный адрес в EEPROM
for (*ee_byte_Ptr; (flag_CLOSE != 0xFF)&(ee_byte <=0x1FF); *ee_byte_Ptr++)
flag_CLOSE = eeprom_read_byte(*ee_byte_Ptr);
return flag_CLOSE;
}