Выбрось каку!!! Обьясните тупому,плиз.
eeprom unsigned char edata[20][8]={{90,0,...},{}...};
unsigned int a;
Запись a=edata[0][0]+edata[0][1]<<8; эквивалентна a= (edata[0][0]+edata[0][1] ) << 8;
Т.е вначале складываются 2 unsigned char и с какого перепуга компилятор должен их автоматически приводить к int?А вот сдвиг результата влево да,уже дожен.Тока ошибка уже гарантирована.
Имхо,есичё.