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

 
 
> LPC1769 - требуется помощь!
cinema_effect
сообщение Feb 24 2012, 05:23
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 20-08-09
Пользователь №: 51 964



Добрый день! Только начал работать с отладочной платой LPC1769. Использую стандартные примеры, чтобы разобраться. Помогите понять код:

void SER_Init (void) {
#ifndef __DBG_ITM

#ifdef __UART0 /* UART0 */
LPC_SC->PCONP |= ((1 << 3) | (1 << 15)); /* enable power to UART0 & IOCON */

LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 */
LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 */
#else /* UART1 */
LPC_SC->PCONP |= ((1 << 4) | (1 << 15)); /* enable power to UART1 & IOCON */

LPC_PINCON->PINSEL4 |= (2 << 0); /* Pin P2.0 used as TXD1 */
LPC_PINCON->PINSEL4 |= (2 << 2); /* Pin P2.1 used as RXD1 */
#endif

Это инициализация UART. Не могу понять, что значит LPC_SC->PCONP |= ((1 << 3) | (1 << 15));
здесь не ясно, что значит (1 << 3), (1 << 15), как и все выражение в целом. Так же не понимаю значение выражения (2 << 0)? объясните пожалуйста
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
cinema_effect
сообщение Feb 24 2012, 05:51
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 20-08-09
Пользователь №: 51 964



Спасибо. С конструкцией типа (1<<X) вроде разобрался. Но конструкцию (2 << 0), (2 << 2) понять не могу.

В первом случае (2 << 0), можно понять как начиная с нулевого бита, записать значение 2? Т.е. 10. Тогда второй случай (2 << 2) можно понять как начиная со второго бита записать значение 2, т.е. 10. В итоге получаем слово 1010. Ну вроде так по логике? или опять туплю?
Go to the top of the page
 
+Quote Post
sparcmaster
сообщение Feb 24 2012, 06:05
Сообщение #3


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

Группа: Свой
Сообщений: 93
Регистрация: 13-01-12
Из: Гатчина
Пользователь №: 69 333



Цитата(cinema_effect @ Feb 24 2012, 09:51) *
В первом случае (2 << 0), можно понять как начиная с нулевого бита, записать значение 2? Т.е. 10. Тогда второй случай (2 << 2) можно понять как начиная со второго бита записать значение 2, т.е. 10. В итоге получаем слово 1010. Ну вроде так по логике? или опять туплю?

Все верно. Только не "записать", а просто передвинуть число 2 влево на 0 и 2 бита от начала.

Сообщение отредактировал sparcmaster - Feb 24 2012, 06:38
Go to the top of the page
 
+Quote Post
cinema_effect
сообщение Feb 24 2012, 06:35
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 47
Регистрация: 20-08-09
Пользователь №: 51 964



Цитата(sparcmaster @ Feb 24 2012, 12:05) *
Все верно. Только не "записать", а просто передвинуть число 2 вправо на 0 и 2 бита от начала.

Спасибо. Вроде все понял. Только число 2 двигается же не вправо, а влево вроде?

Цитата(sparcmaster @ Feb 24 2012, 12:05) *
Все верно. Только не "записать", а просто передвинуть число 2 вправо на 0 и 2 бита от начала.

Спасибо. Вроде все понял. Только число 2 двигается же не вправо, а влево вроде?

Цитата(sparcmaster @ Feb 24 2012, 12:05) *
Все верно. Только не "записать", а просто передвинуть число 2 вправо на 0 и 2 бита от начала.

Спасибо. Вроде все понял. Только число 2 двигается же не вправо, а влево вроде?

Цитата(sparcmaster @ Feb 24 2012, 12:05) *
Все верно. Только не "записать", а просто передвинуть число 2 вправо на 0 и 2 бита от начала.

Спасибо. Вроде все понял. Только число 2 двигается же не вправо, а влево вроде?
Go to the top of the page
 
+Quote Post
sparcmaster
сообщение Feb 24 2012, 06:37
Сообщение #5


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

Группа: Свой
Сообщений: 93
Регистрация: 13-01-12
Из: Гатчина
Пользователь №: 69 333



Цитата(cinema_effect @ Feb 24 2012, 10:35) *
Спасибо. Вроде все понял. Только число 2 двигается же не вправо, а влево вроде?

Да, конечно, влево - я ошибся.
Go to the top of the page
 
+Quote Post



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

 


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


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