Easyelectronics.ru

Электроника для всех
Текущее время: 24 янв 2021, 11:53

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/5шт. два слоя. $5/5шт. четыре слоя
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Логические операторы
СообщениеДобавлено: 17 июн 2016, 16:54 
Старожил

Зарегистрирован: 28 ноя 2013, 14:12
Сообщения: 287
Подскажите а то совсем запутался.

Необходимо взять число. Сдвинуть его. И вписать в порт так что бы установленные биты не изменились, а то что я вписываю поменялось.

так пробовал.
bol3=GPIOA->ODR;
bol3^=(z<<6);
GPIOA->ODR = bol3;
так пробовал
bol3=GPIOA->ODR;
bol3|=(z<<6);
GPIOA->ODR = bol3;

Инет читал. Но без наглядного примера что то не доходит.
Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логические операторы
СообщениеДобавлено: 17 июн 2016, 17:00 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 7241
Не понял суть вопроса.
subj:
GPIOA->ODR ^= (z<<6);
или
GPIOA->ODR = GPIOA->ODR ^ (z<<6);
Обе записи = синонимы.

Впрочем, если вам надо заменить некоторое битовое поле в регистре, то делается иначе - вначале чистится от существующего значения, затем ставится новое:
GPIOA->ODR = (GPIOA->ODR & ~(mask<<6)) | (z<<6);


Последний раз редактировалось u37 17 июн 2016, 17:04, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логические операторы
СообщениеДобавлено: 17 июн 2016, 17:03 
Старожил

Зарегистрирован: 28 ноя 2013, 14:12
Сообщения: 287
Да. Спасибо. Все работает.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 


Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB