Цитата(Xenom0rph @ Oct 17 2008, 15:24)

Вообщем задача такая, у меня есть число типа unsigned int;
Мне надо записать его в ячейку eeprom. Ячейка это один байт, значит для хранения типа unsigned int требуется две ячейки. Так вот как мне разбить это число по байту и записать в ячейки, а когда мне потребуется это число я его обратно склеил?
Знаю, что как то делается это просто, там страший и младший разряд... и т.д. но вот что то немогу никак вьехать в эти разряды.
Не нужно усложнять. eeprom с логической точки зрения ничем не отличается от "обычной" памяти. Поэтому и хранить там данные можно байтами, словами и целыми структурами. А о правильном расположении байтов пусть заботится компилятор.
Код
unsigned int __eeprom MyArray[10];
unsigned int A, B;
...
MyArray[0] = A; // тут компилятор сам разложит переменную A побайтно и вставит инструкции побайтного сохранения в eeprom
...
B = MyArray[0]; // тут будет проделана обратная работа.
Примечание: в разных компиляторах квалификатор __eeprom может называться по-разному, но смысл тот же - указать компилятору, что память выделяется в зоне eeprom.
Сделано в Китае. Упаковано в России.