Настройте контакт PIC для ввода и вывода

Я работаю над проектом, в котором используется микроконтроллер PIC24FJ64GA002. Я работаю над функцией последовательной связи с битовым соединением, которая будет использовать один провод для отправки данных, а затем переключаться в режим приема для получения данных на том же контакте. Для тактирования будет использоваться отдельный вывод, который всегда будет контролироваться другой платой (всегда входом). Мне интересно, есть ли способ настроить контакт для работы с открытым коллектором, чтобы его можно было использовать в качестве входа и выхода, или мне нужно менять конфигурацию контакта каждый раз, когда я перехожу от чтения к записи?


person PICyourBrain    schedule 07.10.2010    source источник
comment
http://chiphacker.com! Но обычно вам приходится перепрограммировать чип для переключения направления контактов.   -  person Marty    schedule 08.10.2010


Ответы (1)


Вам нужно каждый раз менять направление вывода с помощью регистра TRIS. Если вывод настроен как выход, чтение регистра PORT, скорее всего, скажет вам только, до какого уровня вы управляете выводом (при условии, что на выводе есть высокий импеданс). Если вывод установлен для ввода, вы не сможете управлять желаемым выходным значением. Кроме того, убедитесь, что вы читаете входящие данные с помощью регистра PORT, а выводите данные с помощью регистра LAT. Это гарантирует, что вы не столкнетесь с какими-либо проблемами, если ваш код (я предполагаю, что вы программируете здесь на C) преобразуется в инструкции bset/bclr/btgl, которые являются чтение-изменение-запись. Если вы пишете на ассемблере, применяется то же правило, но вы знаете, когда используете инструкции типа R-M-W. Если вы хотите больше рассуждений по этому поводу, пожалуйста, спросите.

person codinghead    schedule 10.11.2010