Вт сен 27, 2022 16:47:02
uint8_t eeprom_read_byte (const uint8_t *__p) __ATTR_PURE__;
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;
}
Вт сен 27, 2022 19:49:45
Мне необходимо инициализировать начальную ячейку адресного пространства 0x0010
uint8_t* ptr=(uint8_t*)0x10
Поскольку памяти 512 байт, то для адресации надо использовать двухбайтную переменную, в то время, как для указателя функция требует однобайтное значение. Как это правильно сделать,
for(uint16_t i=0;i<512;i++){
uint8_t value=eeprom_read_byte((uint8_t*)(ptr+i));
}
Вт сен 27, 2022 20:18:05
uint8_t get_status(void)
{
uint8_t* ptr=(uint8_t*)0x10;
for (ptr = 0x10; ((flag_CLOSE == 0xFF)&(ptr <=0x1FF)); ptr++)
flag_CLOSE = eeprom_read_byte((uint8_t*)ptr);
ptr--;
return flag_CLOSE;
}
Вт сен 27, 2022 20:59:01
Вт сен 27, 2022 21:13:14
Вт сен 27, 2022 21:20:04
Ср сен 28, 2022 15:19:20