Спасибо mempfis за ответ.
Моя ошибка заключалась в том, что сначала нужно было сделать приведение типа, а потом делать сдвиг
было
Код
u_char adress = eeDataLong;
...
data_long |= ((EEPROM_read(adress++)) <<8);
data_long |= (EEPROM_read(adress++)) <<16;
...
стало
Код
...
data_long |= ((EEPROM_read(adress++)) <<8);
data_long |= ((long)(EEPROM_read(adress++))) <<16;
...
to Dog Pawlowa:
Для записи приведение типа делать не нужно, ошибок не было.
Код
u_long long_data;
...
EEPROM_write(adress++, long_data >>=8);
EEPROM_write(adress++, long_data >>=16);
...
В опциях проекта выходной формат стоит ubrof8. установка intel-extended не влияет.