Цитата(artur_off @ Jan 29 2010, 22:48)

Тоже столкнулся с проблемой очень медленной работы функций.
Код
tab_sin_U[i]=round((sin(temp)*amount)+(1/6)*(sin(3*temp)*amount));
Расчет массива из 1024-х значений по этой формуле, в STR912 занимал примерно пол секунды. И это при частоте ядра 96МГц.
Формула как-то странно выглядит. Например, (1/6) - это 0. Возможно, что с типами других операндов напутано. Если можно не использовать double, то нужно внимательно проследить, чтобы везде был float. К тому же amount можно вынести за скобки и сэкономить одно умножение. Что делает round() и как - непонятно. Вывод: рано спешить с выводами про "быстро-медленно", сначала надо код подправить.
И вообще, что такое "очень медленная работа функций, и это с частотой ядра 96 МГц"? Эта фраза не имеет смысла, пока не сказано, сколько микросекунд - медленно, а сколько - быстро.