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

Обсуждаем контроллеры компании Atmel.
Ответить
zepar
Открыл глаза
Сообщения: 79
Зарегистрирован: Ср май 28, 2014 12:55:56

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

Сообщение zepar »

Добрый! Такая проблема: для снижения нагрузки на порт, я использую два порта. Один из них PORTA, другой PORTB. Как одновременно сменить состояние двух портов? Иначе выходит так, что в маленький промежуток на одном лог. 1, на другом лог. 0 и выходит КЗ.
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Одновременно не получится - порты разные, значит минимум две команды вывода.
Теперь "абы КоЗы не появилось" - выполнить последовательность команд перехода
"активное состояние - Z - активное состояние" для каждого из выводов. А конкретика зависит от конкретной схемки и прожки (что имеем "на входе" и чего надо "в результате") - у АВРок возможностей много - аж три регистра на порт - их все учитывать надо.
8)
Реклама
zepar
Открыл глаза
Сообщения: 79
Зарегистрирован: Ср май 28, 2014 12:55:56

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

Сообщение zepar »

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

P.S Порты A настроены на выход (DDRA|=0b00000011)
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Смотри "альтернативные функции" и те разделы даташита, что за них отвечают для конкретного МК.
В частности статус фуз-битов для режима системного генератора.
8)
Реклама
Эиком - электронные компоненты и радиодетали
zepar
Открыл глаза
Сообщения: 79
Зарегистрирован: Ср май 28, 2014 12:55:56

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

Сообщение zepar »

Это для кварцевого резонатора. Но ведь у меня стоит во фьюзах внут. тактирование, МК все равно использует ноги A0, A1 как альтернативные функции?
Реклама
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

Только при внутреннем RC-генераторе работа как обычный порт (ra0 и ra1).
Вроде кроме сбросового там особенностей быть не должно... Пока их не использовал.
:roll:
Реклама
zepar
Открыл глаза
Сообщения: 79
Зарегистрирован: Ср май 28, 2014 12:55:56

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

Сообщение zepar »

Печально, не хочу еще одну тему создавать.. Вот скрин, как фьюзы стоят в протеусе. Неужели глюк симулятора?
Изображение
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

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

Сообщение СКАЗОЧНИК »

скорее всего глюк. ))) Я использовал (у меня по IIC к ним подключен RTC). Все работает. Тоже ТИНИ2313

Только запись настройки порта на Си я плохо понимаю. Разве в Си нельзя присвоить значение порту просто так? :dont_know:
Станислав
zepar
Открыл глаза
Сообщения: 79
Зарегистрирован: Ср май 28, 2014 12:55:56

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

Сообщение zepar »

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

 PORTA^=00000010;
Я 0b забыл :))
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15575
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

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

Сообщение BOB51 »

:)))
Аватара пользователя
alex_
Опытный кот
Сообщения: 781
Зарегистрирован: Сб июн 01, 2013 22:24:21
Откуда: ПФО

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

Сообщение alex_ »

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

Вернуться в «AVR»