P.S. Сижу играюсь с семи-сегментным индикатором. Порт, отвечающий за сегменты, включил на выход(записал в него 0х0) и при подаче на ножку порта соответвенно нуля, нужный сегмент загорается(индикатор с общим анодом). Вот не могу понять почему так. Думал, наоборот надо, порт на вход устанавливать.
Что значит: порт на вход и на выход, объясните на пальцах
Что значит: порт на вход и на выход, объясните на пальцах
Приветствую, только не кидайтесь тухлыми помидорами. Вроде всё просто, но в документации(погуглил) как-то этот момент опущен, или просто так написано что не могу понять. Что значит что порт включен на вход и на выход? В чём отличие и что это даёт? Объясните на пальцах.
P.S. Сижу играюсь с семи-сегментным индикатором. Порт, отвечающий за сегменты, включил на выход(записал в него 0х0) и при подаче на ножку порта соответвенно нуля, нужный сегмент загорается(индикатор с общим анодом). Вот не могу понять почему так. Думал, наоборот надо, порт на вход устанавливать.
P.S. Сижу играюсь с семи-сегментным индикатором. Порт, отвечающий за сегменты, включил на выход(записал в него 0х0) и при подаче на ножку порта соответвенно нуля, нужный сегмент загорается(индикатор с общим анодом). Вот не могу понять почему так. Думал, наоборот надо, порт на вход устанавливать.
- Реклама
- AlekseyEnergo
- Модератор
- Сообщения: 2117
- Зарегистрирован: Пт янв 11, 2013 19:19:26
- Откуда: Санкт-Петербург
Re: Что значит: порт на вход и на выход, объясните на пальца
Хороший вопрос. А что книжки говорят? А Вы что ни будь читаете, по тематике. Или просто взяли и решили поиграться индикатором и МК?
Re: Что значит: порт на вход и на выход, объясните на пальца
В данный момент учусь по книжке " Михаэль Хофман: Микроконтроллеры для начинающих". Глава 6-я, раздел 3-й. По сути вода, сказано, мол, хотите вход, запишите в TRIS 1, выход -0. (Где-то у меня ещё в электронке по ПИКам книги были, надо ещё в них покопаться). Так же копаясь по сайтам с информацие по программированию пиков, натыкаюсь на разделы про порты ввода вывода, попадается поподробнее, типа:
Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы. Мне бы по простому, мол, режим "вход" используется тогда-то и для того-то, режим "выход" тогда-то и для того-то. А уже со временем, когда разберусь подробнее и отрастёт борода и свитер прилипнет к телу, полезу глубже, в защёлки и триггеры. Мне как любителю, на первое время тяжело воспринимать информацию в таком виде. Поэтому и хочется чтобы опытные, бородатые коты рассказали на пальцах что к чему, чтобы в голове уложилось. Зачем этот флаг направления вообще нужен. Почему нельзя просто записывать в порт 0 или 1 без этого регистра направления? А там глядишь и свой котелок варить начнёт
Аналогичная стилистика написания в "Справочник по среднему семейству микроконтроллеров PICmicro", глава 9-я "Порты ввода-вывода" http://mculab.ru/datasheet/pic/pic16_9.pdfПорт может быть настроен на ввод или вывод цифрового сигнала с помощью защелки TRIS, которая представляет собой D-триггер. Если порт должен работать как выход, то на вход D защелки TRIS подается сигнал лог. 0, который по тактовому импульсу записывается в триггер.
В этом случае инверсный выход TRIS-защелки разрешает работу схемы "И" и открывает тристабильный буфер, через который сигнал с выхода защелки данных проходит на вывод порта. В этом случае данные с вывода порта можно будет только читать. Здесь не следует смешивать чтение выходных данных порта и чтение вывода порта. Для чтения бита данных, записанного в порт, нужно прочитать содержимое защелки данных. Каждому выводу порта ввода/вывода соответствует отдельный бит в регистрах TRISx, PORTx, LATx и ODCx.
Общее количество портов ввода/вывода и количество выводов зависит от конкретной модели микроконтроллера. Вполне возможно и то, что отдельные биты портов ввода/вывода в конкретном устройстве задействованы не будут. В любом случае лучше обратиться к технической документации на микроконтроллер. Рассмотрим назначение каждого из регистров порта ввода/вывода. Регистр TRISx позволяет сконфигурировать направление обмена данными для каждого вывода порта.
Если для какого-либо вывода порта в регистре TRIS на соответствующей позиции установлен 0, то вывод будет работать на передачу данных. Если же соответствующий бит в регистре TRIS установлен в 1, то вывод порта будет работать на прием (чтение). Доступ к данным порта осуществляется посредством регистра PORTx. При чтении этого регистра считываются значения сигналов, присутствующих на выводах порта, а при записи этого регистра данные заносятся в защелку данных порта.
Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы. Мне бы по простому, мол, режим "вход" используется тогда-то и для того-то, режим "выход" тогда-то и для того-то. А уже со временем, когда разберусь подробнее и отрастёт борода и свитер прилипнет к телу, полезу глубже, в защёлки и триггеры. Мне как любителю, на первое время тяжело воспринимать информацию в таком виде. Поэтому и хочется чтобы опытные, бородатые коты рассказали на пальцах что к чему, чтобы в голове уложилось. Зачем этот флаг направления вообще нужен. Почему нельзя просто записывать в порт 0 или 1 без этого регистра направления? А там глядишь и свой котелок варить начнёт
Re: Что значит: порт на вход и на выход, объясните на пальца
Вычеркни их из текста и получится:Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы.
Не забывай настроить порты как цифровые, т.е. отключить переферию.Если для какого-либо вывода порта в регистре TRIS на соответствующей позиции установлен 0, то вывод будет работать на передачу данных. Если же соответствующий бит в регистре TRIS установлен в 1, то вывод порта будет работать на прием (чтение).
Re: Что значит: порт на вход и на выход, объясните на пальца
Дык, а что это значит что порт работает на приём или передачу? Т.е например на "приём", т.е в порту он замыкается на землю, что ток начинает течь в него или что происходит?otest писал(а):Вычеркни их из текста и получится:Тяжело как-то воспринимается. Какие защёлки, триггеры, логические И-ИЛИ, буферы.Не забывай настроить порты как цифровые, т.е. отключить переферию.Если для какого-либо вывода порта в регистре TRIS на соответствующей позиции установлен 0, то вывод будет работать на передачу данных. Если же соответствующий бит в регистре TRIS установлен в 1, то вывод порта будет работать на прием (чтение).
Ведь что режим входа, что режим выхода, я и там и там могу выставить на ножку 0 или 1, так ведь?
- Реклама
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Что значит: порт на вход и на выход, объясните на пальца
Вы знаете, что у микросхем (жёсткая логика) есть входы и выходы.
У контроллера вы выбираете для каждого сигнального вывода "чем он будет", входом или выходом (регистр TRISx).
P.S.
Если выход - записываете данные в порт или бит порта (к примеру, зажигаете светодиод).
Если вход - читаете данные с порта или бит порта (к примеру, опрос кнопки).
У контроллера вы выбираете для каждого сигнального вывода "чем он будет", входом или выходом (регистр TRISx).
P.S.
Если выход - записываете данные в порт или бит порта (к примеру, зажигаете светодиод).
Если вход - читаете данные с порта или бит порта (к примеру, опрос кнопки).
С Уважением, Альберт (Albert_V).
- КРАМ
- Друг Кота
- Сообщения: 25263
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Что значит: порт на вход и на выход, объясните на пальца
Работа порта на прием НЕ ВЫКЛЮЧАЕТСЯ (за исключением особых случаев связанных с аналоговыми функциями пина).xterro писал(а): Дык, а что это значит что порт работает на приём или передачу?
Выключается ВЫХОДНОЙ БУФЕР защелки порта.
То есть вход фиксированно присоединен к пину, а выход может переводится в третье состояние путем запирания СРАЗУ ОБОИХ транзисторов выходной комплементарной пары (TRIS=1). При работе пина как ВЫХОДА можно спокойно ПРОЧЕСТЬ состояние пина как ВХОДА.
Поэтому есть регистр LAT - это защелка выхода. И есть регистр PORT - это сам ПИН порта.
Чтение LAT - это чтение защелки, а не пина. Чтение PORT - это чтение пина.
- Albert_V
- Друг Кота
- Сообщения: 4119
- Зарегистрирован: Чт сен 12, 2013 00:54:12
- Откуда: ЗаМКАДье. Там, где ЦУП
Re: Что значит: порт на вход и на выход, объясните на пальца
КРАМ, про регистр LAT лучше аккуратнее говорить. Не у всех PIC контроллеров есть этот регистр, а ТС не обозначил с каким PIC-ом он работает (к примеру, у PIC16F87X нет регистра LAT).
С Уважением, Альберт (Albert_V).
- КРАМ
- Друг Кота
- Сообщения: 25263
- Зарегистрирован: Чт янв 10, 2008 22:01:02
- Откуда: Московская область, Фрязино
Re: Что значит: порт на вход и на выход, объясните на пальца
Причем тут аккуратность?Albert_V писал(а):КРАМ, про регистр LAT лучше аккуратнее говорить. Не у всех PIC контроллеров есть этот регистр
Если регистра нет, то это следует из даташита и НИЧЕГО ПО СУЩЕСТВУ ИЗЛОЖЕННОГО МНОЙ НЕ МЕНЯЕТ.
Более того, отсутствие этого регистра приводит к процедуре RMW для пина, а не для защелки.
То есть понимание отличия LAT и PORT даст понимание механизма порчи состояния выходных защелок при модификации бита порта.


