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

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> За сколько времени реально осуществляется переключение направления порта?, в мегах, тинях?
Kovrov
сообщение Mar 2 2006, 07:23
Сообщение #1


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



помниться в 90й серии эта тема была больная ..
где то слышал что в мегах эту проблему решили...
но чтото не совсем вериться... всетаки приходится пару тактов пропускать после смены направления...


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
prottoss
сообщение Mar 2 2006, 07:57
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659



Цитата(Kovrov @ Mar 2 2006, 14:23) *
помниться в 90й серии эта тема была больная ..
где то слышал что в мегах эту проблему решили...
но чтото не совсем вериться... всетаки приходится пару тактов пропускать после смены направления...


Гляньте в AVRStudio - там все прекрасно видно - в следующем такте после исполнения команды


--------------------
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Mar 2 2006, 12:53
Сообщение #3


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



а где про это написано в студии?
или в том смысле что пошагово в проекте можно увидеть?


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
BVU
сообщение Mar 2 2006, 13:56
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Kovrov @ Mar 2 2006, 10:23) *
помниться в 90й серии эта тема была больная ..
где то слышал что в мегах эту проблему решили...
но чтото не совсем вериться... всетаки приходится пару тактов пропускать после смены направления...

От серии это независит. Прикиньте процедуру переключения на ASM и подсчитайте время ее выполнения в зависимости от частоты тактирования (в DataSheet для этого все есть). Раньше не имея всяких 'студий' поступали именно так.


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Mar 2 2006, 18:01
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Не совсем всё так просто.
Порт действительно переключается на следующий такт. Это действительно можно увидеть в AVR Studio. А теперь тонкости:
Как правило когда задают такой вопрос, то подразумевается что планируют операции ввода-вывода. Так вот операция ввода выполняется медленнее операции вывода. В связи с этим возникают иногда проблемы! Приведу пример рабочей программы, где это будет видно наглядно.

readusb:
sbic pinb,RXF ; по готовности - продолжить
rjmp PC-1 ; иначе повторить
cbi portb,RD ; читать
; in wl,pind ; USB (особенности AVR ядра)
sbi portb,RD ; завершить
in wl,pind ; USB
cpi wl, label ; метка?
breq read1 ; если да, то ввести команду
readex:
clt ; иначе, - сбросить

Если не учитывать особенности ядра, то необходимо вводить там где стоит коментарий!
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 3 2006, 03:31
Сообщение #6


кекс
******

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



Цитата(SasaVitebsk @ Mar 2 2006, 20:01) *
...
Код
    cbi        portb,RD; читать
;    in        wl,pind    ; USB (особенности AVR ядра)
    sbi        portb,RD; завершить

Если не учитывать особенности ядра, то необходимо вводить там где стоит коментарий!

Это не особенности ядра, а особенности алгоритма и частоты тактирования. Просто с более высойкой частотой тактирования вы промигиваете RD сильно быстро для USB, а командой in автор этого кода делал задержку на 2 такта. AVR и ядро AVR здесь абсолютно не при чем, вместо IN можно было спокойно применить две слудующих подряд команды NOP.
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Mar 3 2006, 04:52
Сообщение #7


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Господа давайте подругому...
есть кусок кода...
init:
SBI DDRx,Y -порт на вывод
////////....
Чушь всякая....
///////
CBI DDRx,Y
SBIC PINX,Y
;---
X,Y один и тотже пин и порт
в результате получаем недействительные данные при опросе ноги

приходиться между CBI и SBIC всовывать задержку

причем на 90 серии эта задержка была значительной порядка десятка тактов - при 8 мгц
(почему десятков? - гдето давно в апнотах - что то с клавиатурой связано) - в исходнике
эта задержка вводилась, как раз на очухивание переключения направления - и ничем и нигде не мотивировалась.... )
у меги хватат нескольких нопов при 16 мгц
но хотелось бы точно знать

насчет предидущего письма - да это особенность авр- но это в шите оговаривается - что между оут и ин всунуть ноп

Сообщение отредактировал Kovrov - Mar 3 2006, 04:57


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
BVU
сообщение Mar 3 2006, 07:03
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(SasaVitebsk @ Mar 2 2006, 21:01) *
Не совсем всё так просто.
Порт действительно переключается на следующий такт. Это действительно можно увидеть в AVR

В DataSheet на AVR об этом тоже говориться с примерами кода и диаграм. Нет здесь особой сложности то. Просто внимательнее надо изучать первоисточник (DataSheet).


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Mar 3 2006, 07:30
Сообщение #9


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



К примеру,в полном даташите на м16 на стр 51 это четко и ярко иллюстрировано
но нет ни слова о варианте со сменой направления
если это относится и к моему вопросу то я только рад!
но хотелось бы точности в этом вопросе.....


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
MRW
сообщение Mar 3 2006, 09:00
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 40
Регистрация: 17-06-04
Пользователь №: 36



Я раз сталкнулся с этой проблемой на Mege8. Пришлось вводить задержку, причем 1-3 мкс было мало (при кварце 7.3728). Поставил 5 мкс - все четко заработало.
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 3 2006, 09:15
Сообщение #11


кекс
******

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



Цитата(Kovrov @ Mar 3 2006, 09:30) *
если это относится и к моему вопросу то я только рад!
но хотелось бы точности в этом вопросе.....

к вашему вопросу относится диаграмма еа стр. 50 tpdmax.

Цитата(MRW @ Mar 3 2006, 11:00) *
Я раз сталкнулся с этой проблемой на Mege8. Пришлось вводить задержку, причем 1-3 мкс было мало (при кварце 7.3728). Поставил 5 мкс - все четко заработало.

Ой!
Go to the top of the page
 
+Quote Post
Георгий
сообщение Mar 3 2006, 09:35
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 269
Регистрация: 17-11-05
Из: Киров-Москва
Пользователь №: 10 957



Вы забывает еще о том, на что нагружена нога. Если емкостная составляющая очень велика, задержки с установкой уровня могут быть очень большими.


--------------------
Обычно последним смеется тот, кто хуже соображает!
Go to the top of the page
 
+Quote Post
Kovrov
сообщение Mar 3 2006, 09:40
Сообщение #13


Мастер-фломастер
****

Группа: Свой
Сообщений: 611
Регистрация: 29-12-05
Пользователь №: 12 700



Цитата(defunct @ Mar 3 2006, 12:15) *
стр. 50 tpdmax.

tpdmax.-- ????


--------------------
Вон ПОПОВ, клоун клоуном, а радио изобрел!!
Go to the top of the page
 
+Quote Post
defunct
сообщение Mar 3 2006, 09:45
Сообщение #14


кекс
******

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



Цитата(Kovrov @ Mar 3 2006, 11:40) *
tpdmax.-- ????

tpd.max ~ 2 такта.
(Figure 24. Synchronization when Reading an Externally Applied Pin Value)
Go to the top of the page
 
+Quote Post
BVU
сообщение Mar 3 2006, 11:43
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 301
Регистрация: 30-11-04
Из: Россия, Н.Новгород
Пользователь №: 1 264



Цитата(Георгий @ Mar 3 2006, 12:35) *
Вы забывает еще о том, на что нагружена нога. Если емкостная составляющая очень велика, задержки с установкой уровня могут быть очень большими.

В полне солидарен. Хорошее замечание!
Так же, как дополнительный NOP при каждом переключении для ввода/вывода - необходим...


--------------------
Не корысти ради, не в целях наживы, а во исполнение велений души!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 00:05
Рейтинг@Mail.ru


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