Разработка, производство и продажа радиоэлектронной аппаратуры
|
Карта сайта
|
Пишите нам
|
В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:
jobsmp@pochta.ru
Телесистемы
|
Электроника
|
Конференция «Микроконтроллеры и их применение»
Сколько примерно процессорного времени займет выполнение этого куска кода?(+)
Отправлено
Stason
11 августа 2007 г. 20:42
Здрасте...
Ребят,сколько времени(тактов) примерно займет выполнение поочередно этих функций на частоте 8MHz на кристале Мега8?
///////////////////////////////////////////////////////////
void aho(int ahoCnt)
{
ahoTime=ahoCnt;//ahoTime - Period (mkSec);
ahoFreq=60000000/ahoCnt;//ahoFreq - chastota(ob/min)
}
///////////////////////////////////////////////////////////
void OneDegree();
{
oneDeg = tahoTime/360;//Znachenie 1 gradusa
}
///////////////////////////////////////////////////////////
void ArrCnt(int taho) //диапазон входных данных 0..10000
{
while taho >= 500
{
taho=taho-500;
nArr++;
}
ostatok = taho;
}
///////////////////////////////////////////////////////////
void OZ()
{
ozTime = ozArr[nArr]+(ozK[nArr]*ostatok);
}
///////////////////////////////////////////////////////////
заранее оч благодарен...
Составить ответ
|
Вернуться на конференцию
Ответы
Выведите единичку на некий пин порта, когда начинаете вычисления, и ноль, когда заканчиваете. А потом смотрите осциллографом ...
—
vinogradov aleksei
(11.08.2007 21:27:32
91.124.44.148
,
пустое
)
А еще можно в симуляторе посмотреть. Но тут я точности не обещаю ...
—
vinogradov aleksei
(11.08.2007 21:38:13
91.124.44.148
,
пустое
)
все нормально.
—
колян безпарольный
(11.08.2007 23:25:3
85.195.123.29
,
пустое
)
Во-первых, это не кусок кода, а набор дурацких функций. Во-вторых, заменив константные деления на умножения и грамотно варьируя разрядность переменных, можно сократить это БОЛЬШОЕ время выполнения на порядок, а то и больше. А вопрос твой странен - откомпилируй да замерь, кто же тут будет телепатить все твои нюансы
—
=AVR=
(11.08.2007 20:54:6
80.92.96.19
,
пустое
)
Ответ: все понял кроме замены деления умножением...
—
Stason
(11.08.2007 21:57:32
91.124.114.124
,
пустое
)
Деление константы на переменную или переменной на константу можно заменять гораздо более быстрым умножением. И незачем высчитывать сначала время одного градуса - это лишняя операция, веди вычисления сразу в конечных единицах
—
=AVR=
(11.08.2007 22:08:5
80.92.96.19
,
пустое
)
А можно ссылочку на пример замены деления умножением?заранее спасибо...
—
Stason
(11.08.2007 22:11:34
91.124.114.124
,
пустое
)
Одна из многих тысяч -->
—
=AVR=
(11.08.2007 22:14:4
80.92.96.19
,
пустое
,
ссылка
)
Отправка ответа
Имя*:
Пароль:
E-mail:
Тема*:
Сообщение:
Ссылка на URL:
URL изображения:
если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
увеличьте 2 вдвое:
Перейти к списку ответов
|
Конференция
|
Раздел "Электроника"
|
Главная страница
|
Карта сайта
Web
telesys.ru