Страница 1 из 1

Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 18:51:31
zepar
Добрый! Такая проблема: для снижения нагрузки на порт, я использую два порта. Один из них PORTA, другой PORTB. Как одновременно сменить состояние двух портов? Иначе выходит так, что в маленький промежуток на одном лог. 1, на другом лог. 0 и выходит КЗ.

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 19:08:43
BOB51
Одновременно не получится - порты разные, значит минимум две команды вывода.
Теперь "абы КоЗы не появилось" - выполнить последовательность команд перехода
"активное состояние - Z - активное состояние" для каждого из выводов. А конкретика зависит от конкретной схемки и прожки (что имеем "на входе" и чего надо "в результате") - у АВРок возможностей много - аж три регистра на порт - их все учитывать надо.
8)

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 19:18:48
zepar
Окей, с этим я разобрался. Но у меня еще вопрос (не хочу еще одну тему создавать), PORT A у attiny2313 обычный i/o ? Все остальные работают, а с буковкой A - не реагируют на команды, у них всегда логическая 1. Если с пином reset все понятно, то почему PA0, PA1 не слушаются ? У меня есть догадка, что из-за дополнительной функции XTAL1,2.

P.S Порты A настроены на выход (DDRA|=0b00000011)

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 19:48:11
BOB51
Смотри "альтернативные функции" и те разделы даташита, что за них отвечают для конкретного МК.
В частности статус фуз-битов для режима системного генератора.
8)

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 19:57:47
zepar
Это для кварцевого резонатора. Но ведь у меня стоит во фьюзах внут. тактирование, МК все равно использует ноги A0, A1 как альтернативные функции?

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 21:17:16
BOB51
Только при внутреннем RC-генераторе работа как обычный порт (ra0 и ra1).
Вроде кроме сбросового там особенностей быть не должно... Пока их не использовал.
:roll:

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 21:32:38
zepar
Печально, не хочу еще одну тему создавать.. Вот скрин, как фьюзы стоят в протеусе. Неужели глюк симулятора?
Изображение

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 21:54:08
СКАЗОЧНИК
скорее всего глюк. ))) Я использовал (у меня по IIC к ним подключен RTC). Все работает. Тоже ТИНИ2313

Только запись настройки порта на Си я плохо понимаю. Разве в Си нельзя присвоить значение порту просто так? :dont_know:

Re: Одновременная смена состояния портов

Добавлено: Вт янв 05, 2016 22:09:20
zepar

Код: Выделить всё

 PORTA^=00000010;
Я 0b забыл :))

Re: Одновременная смена состояния портов

Добавлено: Ср янв 06, 2016 10:18:44
BOB51
:)))

Re: Одновременная смена состояния портов

Добавлено: Ср янв 06, 2016 10:56:39
alex_
Как то не совсем понятен смысл объединения портов, если для связи с другой микросхемой то вполне хватает, а если для переферии то ставим драйвер или нахудой конец транзисторы и никаких проблем. Кстати как вариант можно не паралелить порты а паралелить выводы порта например было так А0=В0, А1=В1 и тд делаем так А0=А1, А2=А3, В0=В1, В2=В3 и тд в результате получаем тот же результат но легче в трассировке и как результат отсутствие КЗ при задержке в переключении портов :roll: