Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите по регистрам ввода-вывода AVR.
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
serj32
Здравствуйте.Подскажите по регистрам ввода-вывода AVR.
Вот например я настраиваю порт PB на вывод,соответственно в регистр DDRB-единицы.
Если мне необходимо считать информацию с ножек PB.0 .....PB.8 мне необходимо считать эту информацию с регистра PortB и уж никак с PinB.С PinB можно считывать лишь тогда когда порт настроен на ввод.Правильны ли мои рассуждения ? Спасибо.Прошу меня извинить я ещё не написал своей первой программы.
ae_
Читать PINx можно в любое время, сигнал = реальному напряжению на пине, не важно вход это или выход.
Чтение PORTx при DDRx=1(порт как выход) будет = PINx, если пин не перегружен(КЗ на GND или VCC) или если не включены альтернативные функции для этого пина(TXD, OC1x, и т.п.).
Чтение PORTx при DDRx=0(порт как вход) будет показывать состояние pull-up резисторов для этого порта.
Состояние пина лучше всегда читать из PINx.
serj32
Цитата(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/
bav
сравните рисунок, который приведен по Вашей ссылке с рисунком из документации.
ae_
Цитата(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 — отключен от выводов, но теперь управляет подтяжками этих выводов.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.