Ксения (10.09.2010 20:11 - 20:15, просмотров: 191) ответил Anon на Обращение к отдельному байту переменной в IAR AVR.
А язык какой? C или Assembler? Если С, то так:
short a; // наша переменная
*(char*)&a = 2; // записываем 2 в ее младший байт
*(((char*)&a)+1) = 3; // записываем 3 в ее старший байт
или юзаем адрес как массив:
((char*)&a)[1] = 3; // это записываем 3 в ее старший байт
А в общем случае порядок таков:
1) получаем адрес переменной: &a
2) принудительно приводим этот адрес с байтовому: (char*)&a
3) прибавляем к байтовому адресу смещение: ((char*)&a)+n
где n=номер байта в переменной (младший байт нулевой).
4) записываем по адресу, предварительно его разъименовывая: *(((char*)&a)+n)=3
Вариант второй:
3) используем байтный адрес, как имя массива: ((char*)&a)[n]=2;
где n=номер байта в переменной (младший байт нулевой).