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

 
 
> Подскажите по регистрам ввода-вывода AVR., Непонятно.
serj32
сообщение Jan 25 2013, 12:39
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 25-01-13
Из: Брянск
Пользователь №: 75 345



Здравствуйте.Подскажите по регистрам ввода-вывода AVR.
Вот например я настраиваю порт PB на вывод,соответственно в регистр DDRB-единицы.
Если мне необходимо считать информацию с ножек PB.0 .....PB.8 мне необходимо считать эту информацию с регистра PortB и уж никак с PinB.С PinB можно считывать лишь тогда когда порт настроен на ввод.Правильны ли мои рассуждения ? Спасибо.Прошу меня извинить я ещё не написал своей первой программы.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 4)
ae_
сообщение Jan 25 2013, 13:37
Сообщение #2


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Читать PINx можно в любое время, сигнал = реальному напряжению на пине, не важно вход это или выход.
Чтение PORTx при DDRx=1(порт как выход) будет = PINx, если пин не перегружен(КЗ на GND или VCC) или если не включены альтернативные функции для этого пина(TXD, OC1x, и т.п.).
Чтение PORTx при DDRx=0(порт как вход) будет показывать состояние pull-up резисторов для этого порта.
Состояние пина лучше всегда читать из PINx.
Go to the top of the page
 
+Quote Post
serj32
сообщение Jan 25 2013, 15:31
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 25-01-13
Из: Брянск
Пользователь №: 75 345



Цитата(ae_ @ Jan 25 2013, 17:37) *
Читать PINx можно в любое время, сигнал = реальному напряжению на пине, не важно вход это или выход.
Чтение PORTx при DDRx=1(порт как выход) будет = PINx, если пин не перегружен(КЗ на GND или VCC) или если не включены альтернативные функции для этого пина(TXD, OC1x, и т.п.).
Чтение PORTx при DDRx=0(порт как вход) будет показывать состояние pull-up резисторов для этого порта.
Состояние пина лучше всегда читать из PINx.

Спасибо за ответ.
Вот строки "И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0.
Порты - дело тонкое…"
Взято отсюда http://radiokot.ru/start/mcu_fpga/avr/06/
Go to the top of the page
 
+Quote Post
bav
сообщение Jan 25 2013, 15:45
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 21-06-05
Из: Санкт-Петербург
Пользователь №: 6 184



сравните рисунок, который приведен по Вашей ссылке с рисунком из документации.
Go to the top of the page
 
+Quote Post
ae_
сообщение Jan 26 2013, 01:19
Сообщение #5


Участник
***

Группа: Свой
Сообщений: 462
Регистрация: 2-04-07
Из: Иркутск
Пользователь №: 26 695



Цитата(serj32 @ Jan 26 2013, 00:31) *
Вот строки "И наоборот, если например, PX5 настроен на вывод, то прочитав 5-й бит PinD, мы всегда обнаружим 0. Порты - дело тонкое…"
Взято отсюда http://radiokot.ru/start/mcu_fpga/avr/06/

Это, мягко говоря, неверно.
Если упростить, как в той статье, работу любого вывода всего до 2 режимов, представляя, что всё зависит только от DDRx,
тогда можно считать, что PINx всегда подключен к выводам порта,
а PORTx подключен к выводам при DDRx=1, а при DDRx=0 — отключен от выводов, но теперь управляет подтяжками этих выводов.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 16:46
Рейтинг@Mail.ru


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