реклама на сайте
подробности

 
 
> За сколько тактов происходит запись данных в порт?
zheka
сообщение Apr 6 2009, 10:43
Сообщение #1


Гуру
******

Группа: Участник
Сообщений: 2 072
Регистрация: 14-01-06
Пользователь №: 13 164



Интересует не только как бы способность контроллера, но и особенность ассемблирования Сшного кода такими компиляторами, как CodeVision, WinAVR.

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

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

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

Повторюсь - я пишу на С, и писать некоторые функции в ассемблере буду только в случае крайней необходимости.
Спасибо.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
defunct
сообщение Apr 6 2009, 10:51
Сообщение #2


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(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.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd August 2025 - 08:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016