Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: код
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
forastr
Помогите,пожалуйста, разобрать строчку кода:
#define HW_XMEM_Enable() MCUCR = _BV(SRE)|_BV(SRW10)|MCUCR_SLEEP_MODE
zltigo
Это было обязательно писать в разделе НЕ для самых начинающих? И даже самым начинающим ну надо ОБЯЗАТЕЛЬНО хоть что-то для начала почитать, ну букварь какой....
mdmitry
Цитата(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
forastr
Цитата(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).
Aleksandr Baranov
Цитата(forastr @ Jun 23 2011, 07:27) *
спасибо большое!я нигде не мог найти что значит _BV(x).

http://www.nongnu.org/avr-libc/user-manual...95a93800b3d9546
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.