Страница 1 из 1

Долго выполняется программа в CCS v3.3.

Добавлено: Чт июл 18, 2013 23:46:49
Человек Панда
Здравствуйте,форумчане. Пишу программу под TMSF28xx,работаю в симуляторе.Столкнулся с тем,что алгоритм формирования 256 точек для синусоиды выполняется ну очень долго (около 25 сек). Вот часть кода . Работаю в CCS 3.3 Чем может быть это вызвано и как возможно ускорить работу программы?

Код: Выделить всё

include <math.h>
#define    Numpoints           256             //ОпределЯем количество точек формируемого сигнала
......
define k  1 //коэффициент


{Uint16    	 PRESCALERCPU = 65535; 	
unsigned int i = 0;  
while(i<=Numpoints)
			{
			frequency[i]=(Uint16)(ceil(0.5*PRESCALERCPU*(sin(PI*i*2.000/Numpoints)+1)*k));	
			i++;
			}
}

Re: Долго выполняется программа в CCS v3.3.

Добавлено: Пн июл 22, 2013 10:52:37
Человек Панда
Задачу решил. Оказывается,что операция взятия синуса занимает почти 20 тактов,что много,да еще учесть операции умножения.В итоге свел все к обращению к массиву данных,где заранее рассчитал значения синусов угла

Re: Долго выполняется программа в CCS v3.3.

Добавлено: Пн июл 22, 2013 13:00:16
blackx
Человек Панда писал(а):Оказывается,что операция взятия синуса занимает почти 20 тактов
Это еще мало :)))

На реальном камне все гораздо быстрее посчитается. Симулятор у TI не сильно отличается скоростью работы :tea:.