Спасибо, еще вопрос
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено xfg 05 мая 2004 г. 18:54
В ответ на: См. "A2.5.1. Целые константы" в книжке по ссылке -> отправлено Sot 05 мая 2004 г. 17:31

как считать для 4-х байтовой переменной (типа unsigned long) из одного из байтов напрямую значение? Нужно чтобы команда выполнялась за минимальное время.

unsigned long r1;
unsigned char r2;
....
r1=(30L<<16)|(123L<<8)|127L;
r2=*(&r1+1); // хочу 3байт переменной r1 (число 30) записать в r2
....

после компиляции:
MOV 0x27,#7F
MOV 0x26,#7B
MOV 0x25,#1E
MOV r1(0x24),#0x00
MOV r2(0x21),0x2B // т.е. берется значение "не того" байта (нужно чтобы вместо 0x2B было 0x25)

Что я те так делаю? Напрямую по адресу я считать не могу, так как адрес переменной за ранее не известен.



Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru