Миландр

Ключевым подразделением нашей компании является Центр Проектирования интегральных микросхем
Текущее время: 2018-июл-18 04:19

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




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 2018-июн-20 15:56 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 56
День добрый, подскажите. У меня такая задача. На вывод РС1 МК 1986ВЕ92 поступают импульсы данных интерфейса I2C. Синхроимпульсы подаю на вывод РВ0, который настроен на работу в режиме альтернативной функции. При поступлении фронта синхроимпульса срабатывает прерывание при обработке которого я пытаюсь считывать значения бит данных и помещать их в переменную flag. Привожу здесь фрагмент кода который должен бы по моему разумению поступаемые данные размещать в требуемую переменную:

int flag;
int m;
flag |= m << (PORT_ReadInputDataBit (MDR_PORTС, PORT_PIN_1);
m++;

Но, к сожалению, код работает не так как надо, т.е. когда m = 0, а на входе вывода РС1 - 1, в переменную flag, в младший разряд должна записаться 1. Но в режиме эмуляции эта 1 не записывается. Правда когда значения m становятся другими > 0. Все пишется так как надо. Пожалуйста растолкуйте, что у меня не так.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-июн-20 16:11 
Не в сети

Зарегистрирован: 2009-сен-21 12:39
Сообщения: 476
vladh писал(а):
flag |= m << (PORT_ReadInputDataBit (MDR_PORTС, PORT_PIN_1);
Но, к сожалению, код работает не так как надо, т.е. когда m = 0, а на входе вывода РС1 - 1, в переменную flag, в младший разряд должна записаться 1.

Вы значение m = 0(!) сдвигаете влево на кол-во позиций равное PORT_ReadInputDataBit (MDR_PORTС, PORT_PIN_1).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 2018-июн-20 16:46 
Не в сети

Зарегистрирован: 2017-авг-09 12:38
Сообщения: 56
ЧумА писал(а):
Вы значение m = 0(!) сдвигаете влево на кол-во позиций равное PORT_ReadInputDataBit (MDR_PORTС, PORT_PIN_1).

СПАСИБО!


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

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


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

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


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

Найти:
Перейти:  
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB