Ответ: сравнил на msp(+)
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено _VAI 26 марта 2004 г. 15:09
В ответ на: а чем предложенное =mse= не устроило ( x/10== (x * 6554)>> 16)? При наличии уппаратн умножителя должно работать быстро отправлено xc164 26 марта 2004 г. 14:08

иар 3.10а, код на С, оптимизация по скорости. При оптимизации по размеру время увеличивается на 10%







volatile unsigned int P_q;
unsigned int t, t1, b; // ####
unsigned long c;

for ( ; ; )
{
for ( t = tick_ms, a = 0; a < 30000; a++ )
b += P_q / 10;
printf( "\v%d\t%d \n", tick_ms - t, b ); // 896ms, áåç hw_mul 958

for ( t = tick_ms, a = 0; a < 30000; a++ )
{ c = P_q * 6554;
b += ( c >> 16 );
}
printf( "%d\t%d ", tick_ms - t, b ); // 183ms, áåç hw_mul 801
}







Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru