Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: За сколько тактов происходит запись данных в порт?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
zheka
Интересует не только как бы способность контроллера, но и особенность ассемблирования Сшного кода такими компиляторами, как CodeVision, WinAVR.

То есть к примеру я написал следующее:

CS=1; //допустим это чипселект
PORTA=0xFF;

ОДновременно ли появятся логические единицы на выходах?
На сколько тактов они будут отставать появления лог.1 на CS?

Повторюсь - я пишу на С, и писать некоторые функции в ассемблере буду только в случае крайней необходимости.
Спасибо.
defunct
Цитата(zheka @ Apr 6 2009, 13:43) *
CS=1; //допустим это чипселект
PORTA=0xFF;

ОДновременно ли появятся логические единицы на выходах?
На сколько тактов они будут отставать появления лог.1 на CS?

Если компилятор сгенерит

Код
ldi   rd, 0xFF
sbi  PORTx, xx
out  PORTA, rd


то разница между CS и данными будет в 1 такт.

Если код будет таким:

Код
sbi  PORTx, xx
ldi   rd, 0xFF
out  PORTA, rd


Тогда разница в 3 такта.


На порту A единицы появятся одновременно. Вывод в порт - 1 такт.
Другие варианты надо смотреть отдельно. Сколько выполняется та или иная команда смотрите в AVR Instruction Set Reference, либо в симуляторе AVR-Studio.
=GM=
Вроде бы команда sbi PORTx,xx выполняется за 2 такта или я что-то пропустил?
defunct
Цитата(=GM= @ Apr 6 2009, 14:58) *
Вроде бы команда sbi PORTx,xx выполняется за 2 такта или я что-то пропустил?

Вы ничего не пропустили насчет команды sbi, время ее выполнения 2 такта, запись непосредственно в бит порта во втором такте.

Команда out (Вывод в порт) выполняется за 1 такт,
а соотв, минимальное время между установкой CS и установкой порта A равно одному такту.
adc
здесь один такт:
Код
ldi   rd, 0xFF;1такт
sbi  PORTx, xx;2 такта
out  PORTA, rd;1 такт


здесь два:
Код
sbi  PORTx, xx;2 такта
ldi   rd, 0xFF;1такт
out  PORTA, rd;1 такт


rolleyes.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.