реклама на сайте
подробности

 
 
> 16 BIT -> 2 * 8 BIT, не получаеться взять побайтовый результат из АЦП
pfg
сообщение Apr 7 2008, 13:05
Сообщение #1





Группа: Участник
Сообщений: 5
Регистрация: 8-02-07
Пользователь №: 25 175



пишу полд ИАРом
Вот кусочек кода с дизасмеблером

unsigned char bb, cc, dd, ee;

ADC12MEM0 = 0x0456;
008130 40B2 0456 0140 mov.w #0x0456,&ADC12MEM0

bb = *((unsigned char*)0x140);
008136 42D2 0140 0200 mov.b &ADC12MEM0,&bb

cc = *((unsigned char*)0x141);
00813C 425C 0141 mov.b &0x141,R12
008140 4CC2 0201 mov.b R12,&cc

dd = ( (unsigned char*) & ADC12MEM0) [1];
008144 42D2 0141 0202 mov.b &0x141,&dd

ee = ( (unsigned char *) ADC12MEM0_) [1];
00814A 42D2 0141 0203 mov.b &0x141,&ee

В програмной эмуляции
происходит желаемое

в bb младший байт
в сс dd ee старший байт.

за пускаю на железе
во все (bb cc dd ee) пишет младший байт
Почему даже понять не могу
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Apr 7 2008, 14:00
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



В User's Manual есть таблица Table xxx.ADC12 Registers. Посмотрите, там приведен весь список и 16-и разрядных и 8-ми разрядных регистров ADC12. Адресуемых единиц по адресам 0x141, 0x143, 0x145 и т.п. физически нет в кристалле. Поэтому прямой байтовый доступ к ним просто невозможен. Если объяснять "на пальцах", то при доступе к 16-битной адресуемой единице на адрес как бы накладывается маска 0xFFFE и поэтому самый младший адресный бит в таком случае всегда имеет значение 0. Это называется неполная дешифрация. ИМХО сделана она для того, чтобы снизить до минимума вероятность неправильного считывания результата преобразования АЦП.

Сообщение отредактировал rezident - Apr 7 2008, 14:13
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 31st July 2025 - 15:28
Рейтинг@Mail.ru


Страница сгенерированна за 0.0135 секунд с 7
ELECTRONIX ©2004-2016