Проблема в следующем.
Есть переменная типа integer .Например unsigned int current_position=50000.
По ходу программы она меняется и при выключении устройства надо сохранить эту переменную во внутреннем EEPROM.
Но так как ячейки байтовые , то как я понимаю эту переменную надо разделить на 2 по 8 бит и записать по двум адресам.
С этим вот проблем вроде нет.Делаю так:
#define LOW(int) (unsigned char)(*((char*)&(int)+0)) //returns lowbyte
#define HIGH(int) (unsigned char)(*((char*)&(int)+1)) //returns highbyte
unsigned int current_position=50000;
unsigned char current_position_msb; //highbyte
unsigned char current_position_lsb; //lowbyte
current_position_msb=HIGH(current_position); // возвращает 195
current_position_lsb=LOW(currentr_position); // возвращает 80
И эти значения пишу в EEPROM.
При включении надо восстановить эту переменную.
Читаю current_position_msb и current_position_lsb,но как соеденить их в Integer,чтобы получилось current_position=50000, не знаю.
Или может есть решение по проще?