Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
#rom 0x2100={0x05,0xDC,0x02,0x58,0x01,0x2C} // Данные в EEPROM
#define YPorogAdrs 0x2100 // Нач.адрес в EEPROM для YPorog
Объявление функции:
------------------------------
int16 read_int_eeprom(int16 n)
{
int16 i, data;
for (i=0; i<2; i++)
*(&data +i ) = read_eeprom(i + n);
return(data);
}
----------------------------------------
Вызов её:
----------------------------------------
YPorog = read_int_eeprom(YPorogAdrs);
----------------------------------------
Вместо 0x05DC получаю в результате 0x0005
read_eeprom(i+n) работает правильно - оба раза: в EEADR и EEDATA всё ОК.
а вот тут что то не получается:
*(&data +i )= ???
в "data" прописывается только первый считаный байт...
Подскажите, куда девается второй байт????
Заранее благодарю!