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

 
 
> код
forastr
сообщение Jun 23 2011, 09:14
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Помогите,пожалуйста, разобрать строчку кода:
#define HW_XMEM_Enable() MCUCR = _BV(SRE)|_BV(SRW10)|MCUCR_SLEEP_MODE
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
mdmitry
сообщение Jun 23 2011, 10:14
Сообщение #2


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

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



Цитата(forastr @ Jun 23 2011, 13:14) *
Помогите,пожалуйста, разобрать строчку кода:
#define HW_XMEM_Enable() MCUCR = _BV(SRE)|_BV(SRW10)|MCUCR_SLEEP_MODE

Это макро: #define
имя макро: HW_XMEM_Enable()
тело макро, то есть то, что будет вставляться вместо имени: MCUCR = _BV(SRE)|_BV(SRW10)|MCUCR_SLEEP_MODE
Что делает, не точно, на вскидку:
регистру MCUCR присваивается значение состоящее из побитового ИЛИ последующих значений.
_BV(somebit) - это макро установки в 1 бита номер somebit.
Получаем, что установлены в единицу биты SRE и SRW10.
В итоге в регистре установлены в 1 биты SRE и SRW10 и сделано ещё побитовое ИЛИ с MCUCR_SLEEP_MODE.
MCUCR_SLEEP_MODE это некоторое число, определяющее что-то для режима молого потребления. Это надо смотреть документацию на контроллер.

Как-то так. laughing.gif


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
forastr
сообщение Jun 23 2011, 11:27
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 28-03-11
Из: Минск
Пользователь №: 63 930



Цитата(mdmitry @ Jun 23 2011, 09:14) *
Это макро: #define
имя макро: HW_XMEM_Enable()
тело макро, то есть то, что будет вставляться вместо имени: MCUCR = _BV(SRE)|_BV(SRW10)|MCUCR_SLEEP_MODE
Что делает, не точно, на вскидку:
регистру MCUCR присваивается значение состоящее из побитового ИЛИ последующих значений.
_BV(somebit) - это макро установки в 1 бита номер somebit.
Получаем, что установлены в единицу биты SRE и SRW10.
В итоге в регистре установлены в 1 биты SRE и SRW10 и сделано ещё побитовое ИЛИ с MCUCR_SLEEP_MODE.
MCUCR_SLEEP_MODE это некоторое число, определяющее что-то для режима молого потребления. Это надо смотреть документацию на контроллер.

Как-то так. laughing.gif

спасибо большое!я нигде не мог найти что значит _BV(x).
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 05:17
Рейтинг@Mail.ru


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