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

 
 
> побайтный доступ к регистрам периферии, он есть или нет?
jorikdima
сообщение Jan 4 2010, 10:13
Сообщение #1


тут может быть ваша реклама
*****

Группа: Свой
Сообщений: 1 164
Регистрация: 15-03-06
Из: Санкт-Петербург/CA
Пользователь №: 15 280



Здравствуйте.
Работаю с msp430f5418. Там куча периферии всякой и вот я споткнулся на ровном месте. Возьмем к примеру Таймер А, у которого есть такой регистр TA0CTL расположенный по адресу 0x340. Он 16 разрядный, но в UG сказано про все регистры Таймера да и не только:
Цитата
NOTE: All registers have word or byte register access. For a generic register ANYREG, the suffix
"_L" (ANYREG_L) refers to the lower byte of the register (bits 0 through 7). The suffix "_H"
(ANYREG_H) refers to the upper byte of the register (bits 8 through 15).

То есть насколько я понимаю, можно обратиться побайтно к старшей части слова TA0CTL, то есть по адресу 0x341.
Сделав такой код
Код
//UINT8* p = (UINT8*)0x341;
    //*p = 0x1;

то есть попытку записать 1 в младший бит старшего байта, компилятор сделал вполне валидную команду
Код
mov.b #1, &0x341

Но исполнение этой команды привело к записи единицы в младший бит младшего байта регистра. Почему? Тоже самое с регистрами DMA. А вот если в обычную RAM писать ровно такими же командами, то все хорошо.
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение Jan 11 2010, 11:23
Сообщение #2


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



jorikdima, Вы примеры для 5438 от TI посмотрите для работы с RTC (slac227f и slac166m)


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 27th July 2025 - 03:46
Рейтинг@Mail.ru


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