Одновременная смена состояния портов
Одновременная смена состояния портов
Добрый! Такая проблема: для снижения нагрузки на порт, я использую два порта. Один из них PORTA, другой PORTB. Как одновременно сменить состояние двух портов? Иначе выходит так, что в маленький промежуток на одном лог. 1, на другом лог. 0 и выходит КЗ.
- Реклама
Re: Одновременная смена состояния портов
Одновременно не получится - порты разные, значит минимум две команды вывода.
Теперь "абы КоЗы не появилось" - выполнить последовательность команд перехода
"активное состояние - Z - активное состояние" для каждого из выводов. А конкретика зависит от конкретной схемки и прожки (что имеем "на входе" и чего надо "в результате") - у АВРок возможностей много - аж три регистра на порт - их все учитывать надо.

Теперь "абы КоЗы не появилось" - выполнить последовательность команд перехода
"активное состояние - Z - активное состояние" для каждого из выводов. А конкретика зависит от конкретной схемки и прожки (что имеем "на входе" и чего надо "в результате") - у АВРок возможностей много - аж три регистра на порт - их все учитывать надо.
Re: Одновременная смена состояния портов
Окей, с этим я разобрался. Но у меня еще вопрос (не хочу еще одну тему создавать), PORT A у attiny2313 обычный i/o ? Все остальные работают, а с буковкой A - не реагируют на команды, у них всегда логическая 1. Если с пином reset все понятно, то почему PA0, PA1 не слушаются ? У меня есть догадка, что из-за дополнительной функции XTAL1,2.
P.S Порты A настроены на выход (DDRA|=0b00000011)
P.S Порты A настроены на выход (DDRA|=0b00000011)
Re: Одновременная смена состояния портов
Смотри "альтернативные функции" и те разделы даташита, что за них отвечают для конкретного МК.
В частности статус фуз-битов для режима системного генератора.

В частности статус фуз-битов для режима системного генератора.
Re: Одновременная смена состояния портов
Это для кварцевого резонатора. Но ведь у меня стоит во фьюзах внут. тактирование, МК все равно использует ноги A0, A1 как альтернативные функции?
- Реклама
Re: Одновременная смена состояния портов
Только при внутреннем RC-генераторе работа как обычный порт (ra0 и ra1).
Вроде кроме сбросового там особенностей быть не должно... Пока их не использовал.

Вроде кроме сбросового там особенностей быть не должно... Пока их не использовал.
Re: Одновременная смена состояния портов
Печально, не хочу еще одну тему создавать.. Вот скрин, как фьюзы стоят в протеусе. Неужели глюк симулятора?


- СКАЗОЧНИК
- Идёт направо - песнь заводит, Налево - сказку говорит.
- Сообщения: 5000
- Зарегистрирован: Чт апр 21, 2011 17:55:50
- Откуда: Иркутск
Re: Одновременная смена состояния портов
скорее всего глюк. ))) Я использовал (у меня по IIC к ним подключен RTC). Все работает. Тоже ТИНИ2313
Только запись настройки порта на Си я плохо понимаю. Разве в Си нельзя присвоить значение порту просто так?
Только запись настройки порта на Си я плохо понимаю. Разве в Си нельзя присвоить значение порту просто так?
Станислав
Re: Одновременная смена состояния портов
Код: Выделить всё
PORTA^=00000010;Re: Одновременная смена состояния портов
Как то не совсем понятен смысл объединения портов, если для связи с другой микросхемой то вполне хватает, а если для переферии то ставим драйвер или нахудой конец транзисторы и никаких проблем. Кстати как вариант можно не паралелить порты а паралелить выводы порта например было так А0=В0, А1=В1 и тд делаем так А0=А1, А2=А3, В0=В1, В2=В3 и тд в результате получаем тот же результат но легче в трассировке и как результат отсутствие КЗ при задержке в переключении портов 


