Easyelectronics.ru

Электроника для всех
Текущее время: 27 сен 2020, 23:16

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



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

Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: запись состояний порта lpc1343
СообщениеДобавлено: 30 апр 2011, 15:41 
Только пришел

Зарегистрирован: 30 апр 2011, 15:29
Сообщения: 5
Разбираюсь тут с lpc1343. Возникла необходимость считать состояния с определенных портов (по типу PINB или GPIOx_IDR на STM32) в переменную. Даташит излазил вдоль и поперек, не могу найти, хоть головой о стенку стучись. Подскажите пожалуйста, если конечно там вообще такое возможно.
Заранее благодарю за помощь!!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 30 апр 2011, 15:45 
Супермодератор
Аватара пользователя

Зарегистрирован: 23 апр 2010, 12:58
Сообщения: 5893
Откуда: Москва/Саратов
Так там вроде из DATA регистра читается (в него-же и пишется), не?

_________________
http://d.64h.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 30 апр 2011, 16:26 
Заглядывает иногда

Зарегистрирован: 31 мар 2011, 16:37
Сообщения: 141
Откуда: Анапа
Все с одного места. и читается и пишется. Только замаскировать надо.

Цитата:
A read of the GPIOnDATA register always returns the current logic level (state) of the pin
independently of its configuration. Because there is a single data register for both the
value of the output driver and the state of the pin’s input, write operations have different
effects depending on the pin’s configuration:
• If a pin is configured as GPIO input, a write to the GPIOnDATA register has no effect
on the pin level. A read returns the current state of the pin.
• If a pin is configured as GPIO output, the current value of GPIOnDATA register is
driven to the pin. This value can be a result of writing to the GPIOnDATA register, or it
can reflect the previous state of the pin if the pin is switched to GPIO output from
GPIO input or another digital function. A read returns the current state of the pin.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 30 апр 2011, 16:56 
Только пришел

Зарегистрирован: 30 апр 2011, 15:29
Сообщения: 5
Точно!! Спасибо ОГРОМНОЕ, видать голова уж не варит совсем!
Сейчас попробовал просто диодом поморгать, сравнивая значение на ножке, вроде все получилось.
А можно подробнее про маскировку???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 30 апр 2011, 17:05 
Заглядывает иногда

Зарегистрирован: 31 мар 2011, 16:37
Сообщения: 141
Откуда: Анапа
3 странички мануала вниз:

Цитата:
Read operation
If the address bit associated with the GPIO data bit is HIGH, the value is read. If the
address bit is LOW, the GPIO data bit is read as 0.


И картинка, которая объяснит все лучше чем текст.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 30 апр 2011, 22:17 
Только пришел

Зарегистрирован: 30 апр 2011, 15:29
Сообщения: 5
Благодарю, разобрался...как говорится внимательнее RTFM ))


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 02 май 2011, 01:31 
Только пришел

Зарегистрирован: 30 апр 2011, 15:29
Сообщения: 5
Уважаемые знатоки еще вопрос по этой же теме. Написал небольшую прогу вида

if((0х1 & GPIO3DATA)== 1 ) // состояние пина 0 порта 3
зажечь диод
иначе потушить

все круто работает, но как только я пытаюсь сделать сравнение состояния любого другого пина кроме 0, ничего не работает, помогите советом, уж не знаю. что и думать...
и еще вопрос сопутствующий, почему так работает вообще? насколько я понял, прочитав про маскирование, чтоб получить значение ножки 0, адрес надо было сдвинуть на два бита? или я в чем-то не прав?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: запись состояний порта lpc1343
СообщениеДобавлено: 22 май 2011, 05:20 
Здравствуйте!

Зарегистрирован: 22 май 2011, 05:09
Сообщения: 1
shadist писал(а):
if((0х1 & GPIO3DATA)== 1 ) // состояние пина 0 порта 3
..
все круто работает, но как только я пытаюсь сделать сравнение состояния любого другого пина кроме 0...

если вы сравнивали, к примеру, 2-й пин, ваше выражение было if((0х4 & GPIO3DATA)== 0x4 )? в любом случае, отлдчик ответит на многие вопросы :)


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


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


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

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


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

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

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