![]() |
|
Модераторы: PILOT, ManiaK, Mazzi |
![]()
|
|
| kray20 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 8.11.2010 Репутация: нет Всего: нет |
Спасибо большое, теперь все стало понятнее !
Начал разбираться с переменной PINB. Вы писали(в посте выше) , что в моем случае PINB это: 01011010010110100101101001011010 В моей таблице выводов в столбце pin записано 69 , если теперь 69 перевести в двоичный код это будет : 1000101 Почему это число в двоичном коде не совпадает с числом 01011010010110100101101001011010 ?! |
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
kray20, я написал "например"
|
|||
|
||||
| kray20 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 8.11.2010 Репутация: нет Всего: нет |
извините, UniBomb, невнимательно прочитал ваш пост !
Я ни совсем понял тогда смысл конструкции while (PINB & signalPinMask) и while (~PINB & signalPinMask) Получается, что PINB содержит некий массив выводов и ,использую переменную signalPinMask, я могу контролировать нужный мне вывод, т.е. 23 , в цикле while . А можно заменить данную часть кода :
на
и
на
Будет ли такая замена корректной ?! Это сообщение отредактировал(а) kray20 - 23.11.2010, 11:21 |
||||||||
|
|||||||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
нет. Во-первых строчка "int PINB=selectedChannel-1;" вызовет ошибку из-за того, что PINB уже определена. Во-вторых не ясен смысл присвоения ему правой части
Если уж сокращать, то как-то так:
Добавлено через 2 минуты и 57 секунд И тогда в этом случае переменные signalPinMask и selectedChannel будут не нужны. Это сообщение отредактировал(а) UniBomb - 23.11.2010, 13:00 |
|||
|
||||
| kray20 |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 8.11.2010 Репутация: нет Всего: нет |
Спасибо большое, UniBomb, с сокращением теперь все ясно !
Смысл присвоения в том ,что я думал PINB нужно присвоить номер вывода термодатчика, т.е. 23 , но тут понятно ,что я ошибся ! а что в таком случае содержит переменная PINB ?! Предполагаю , что PINB=69 ,если учесть, что в таблице выводов для термодатчика в столбце: Port стоит PB24 ,а в столбце Pin стоит число 69 Это сообщение отредактировал(а) kray20 - 23.11.2010, 22:40 |
||||
|
|||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
kray20, я с архитектурой arm плохо знаком. Поэтому не уверен что там как устроено. Посему мои дальнейшие слова стоит проверить в документации.
Во многих контроллерах на управление портами ввода/вывода отводятся несколько регистров. В зависимости от архитектуры это количество может изменяться. Например в простом случае есть регистр направления, указывающий является вывод входом или выходом, есть регистр, который задаёт значение на выходе контроллера. PINx - это регистр, который отображает фактическое состояние выводов вне зависимости от настроек порта. Т.е. есть несколько выводов, объединённых в регистр B. Некоторые выводы настроены на вход, некоторые на выход. Но на каждом выводе в любой момент времени висит логический уровень "1" или "0". Так вот PINB покажет на каком выводе что находится. Этот регистр как правило доступен только для чтения. Т.е. нельзя изменить его содержимое. В данном микроконтроллере этот регистр называется вроде как PIO_PDSR. |
|||
|
||||
| kray20 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 8.11.2010 Репутация: нет Всего: нет |
Спасибо большое, за обстоятельное разъяснение вопроса ! Буду изучать ! Получается , что PINB мне ,скорее всего, придется переименовать на подходящий для моего контроллера регистр состояния ?!
|
|||
|
||||
| UniBomb |
|
|||
|
Новичок ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 1754 Регистрация: 24.10.2006 Где: Санкт-Петербург Репутация: 9 Всего: 97 |
||||
|
||||
| kray20 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 12 Регистрация: 8.11.2010 Репутация: нет Всего: нет |
Спасибо, UniBomb !
открыл руководство пользователя П.П.Редькина там написано: PIO_PDSR - регистр состояния данных на ножке доступ: только для чтения Благодарю за подсказку ! |
|||
|
||||
![]()
|
| Правила форума "Микроконтроллеры (MCU) и микропроцессоры (MPU)" | |
|
|
На данный раздел помимо Правил форума распространяются текже следующие правила:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, PILOT, ManiaK, UniBomb, Mazzi. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Микроконтроллеры (MCU) и микропроцессоры (MPU) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |