Есть структура (разные типы данных int, char..), ее надо сохранять в EEPROM. Раньше делал так unsigned char i, *uk; dprg.crc=0; uk=&dprg; for( i=0 ; i<sizeof(dprg) ; i++ ){ EEPROM_write(i+EEPROM_dprg, *(uk+i));
Тоже при чтении. Тоесть не надо с int делать типа (msb<<8)|lsb
В iar не проходит, ошибка несовместимые типы. В WinAvr работает, c warning. Если способ узнать адрес структуры или масива c int присвоить его указателю unsigned char? Может кто знает лучший способ считать и записать структуру?
|