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

 
 
> лог некой шины, Как это реализовать более оптимально?
Sirko
сообщение Jun 29 2011, 14:26
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



Необходимо снять лог некой шины, у которой частота в районе мегагерца.
Код простой
Код
u08 array[1000];
u08* pArr = &array[999];
while(pArr >= array)
    *pArr-- = PINA;
У меня получается приблизительно 18 тактов на цикл. Можно ли это улучшить?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sirko
сообщение Jun 29 2011, 20:34
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 245
Регистрация: 15-08-07
Пользователь №: 29 795



Цитата
На асме можно улучшить до 3 тактов.
В три такта можно только опросить порт с инкрементом, а в случае с массивом необходимо контролировать его диапазон.

Цитата
Скачайте компилятор CodeVision
Скачал, поглядел. Среда кажется довольно навороченной. С ней самой еще нужно освоиться, откровенно говоря, лениво как-то ради одного, двух сэкономленных тактов да и то может быть.
Почему-то я склонен верить, что -
Цитата
Да и правильно написанный сишный код (имеется ввиду конкретно цикл опроса входов) вряд ли получится оптимизировать на асме.


Цитата
Как минимум о разрядности и наличии строба вы знать обязаны.
К сожалению.
На вскидку (сужу по топологии разводки): 8 бит данных, 4 бита адрес, 2строба, 1бит - что-то.
Возможно "что-то" и есть строб, а "строба" - выбор R/W.
Шина объединяет между собой три микрушки на трех разных платах, одна плата управляет двумя другими. Микрухи - специфические, либо плиски (что мало вероятно), либо заказные. Во всяком случае, даташитов на них нет.
Адрес, данные и "что-то" - на всех трех платах.
А стробы идут индивидуально, по одному на плату.

Но суть топика - это вопрос: как "Правильно" сделать еще правильнее?
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jun 30 2011, 13:09
Сообщение #3


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Цитата(Sirko @ Jun 29 2011, 19:34) *
В три такта можно только опросить порт с инкрементом, а в случае с массивом необходимо контролировать его диапазон

Ну, тут вы немного погорячились. Для 1000 отсчётов нужно развернуть цикл и повторить 1000 раз фрагмент "прочитать порт в регистр + сохранить регистр с автоинкрементом". Вот вам три такта и будет.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Sirko   лог некой шины, Как это реализовать более оптимально?   Jun 29 2011, 14:26
- - galjoen   Цитата(Sirko @ Jun 29 2011, 18:26) У меня...   Jun 29 2011, 14:54
- - kovigor   Цитата(Sirko @ Jun 29 2011, 17:26) У меня...   Jun 29 2011, 15:00
- - Sirko   Цитатаменее чем за 20 тактов не только...Возможно,...   Jun 29 2011, 16:08
- - =GM=   Цитата(Sirko @ Jun 29 2011, 13:26) Можно ...   Jun 29 2011, 16:10
|- - demiurg_spb   У xMega есть DMA... Правда xMega живьём не видел и...   Jun 29 2011, 17:37
|- - V_G   Цитата(demiurg_spb @ Jun 30 2011, 04:37) ...   Jun 30 2011, 05:02
- - Sirko   Цитатаи не знаюАналогично. Сам сегодня щупаю впер...   Jun 29 2011, 17:49
|- - kovigor   Цитата(Sirko @ Jun 29 2011, 20:49) Сам се...   Jun 29 2011, 18:35
- - Палыч   Цитата(Sirko @ Jun 29 2011, 18:26) У меня...   Jun 30 2011, 04:32
- - alexeyv   ЦитатаУ меня получается приблизительно 18 тактов н...   Jun 30 2011, 06:05
|- - rx3apf   Цитата(alexeyv @ Jun 30 2011, 10:05) Отко...   Jun 30 2011, 15:41
- - Sirko   Странновато как-то: Попробовал на ноуте скомпилить...   Jun 30 2011, 09:48
- - alexeyv   ЦитатаА в пятой студии свой компилятор? Так же как...   Jul 1 2011, 13:07
- - Sirko   ЦитатаНеобходимо снять лог некой шины, у которой ч...   Jul 2 2011, 18:33
|- - =GM=   Цитата(Sirko @ Jul 2 2011, 17:33) Наивный...   Jul 2 2011, 20:22
- - Sirko   ЦитатаСкажу так, за 5 циклов можно считать, записа...   Jul 2 2011, 20:50
|- - rx3apf   Цитата(Sirko @ Jul 3 2011, 00:50) Это че,...   Jul 2 2011, 21:45
- - Sirko   Попробую прокоментировать, если че поправьте. Loo...   Jul 2 2011, 22:33
|- - rx3apf   Цитата(Sirko @ Jul 3 2011, 02:33) Попробу...   Jul 3 2011, 07:11
- - Sirko   ЦитатаВот тут неправильно.Понял. Спасибо. Но тогд...   Jul 3 2011, 07:58
|- - rx3apf   Цитата(Sirko @ Jul 3 2011, 11:58) Понял. ...   Jul 3 2011, 09:45
- - Sirko   Спасибо, буду знать.   Jul 3 2011, 09:51
- - defunct   Цитата(Sirko @ Jul 3 2011, 12:51) Спасибо...   Jul 4 2011, 13:25


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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 20:18
Рейтинг@Mail.ru


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