1. 程式人生 > >CCS中使用DSP定時器的計時程式,可以精確計算某一段程式的執行時間

CCS中使用DSP定時器的計時程式,可以精確計算某一段程式的執行時間

#include <csl_timer.h>

TIMER_Handle hTimer0;
TIMER_Config TimerConfig =
{
	TIMER_CTL_RMK
	(
		TIMER_CTL_SPND_EMUSTOP,
		TIMER_CTL_INVINP_NO,
		TIMER_CTL_CLKSRC_CPUOVR8,	//定時器的頻率是CPU頻率的1/8
		TIMER_CTL_CP_PULSE,
		TIMER_CTL_HLD_NO,			//時鐘有效
		TIMER_CTL_GO_NO,			//時鐘沒有開啟
		TIMER_CTL_PWID_TWO,
		TIMER_CTL_DATOUT_1,
		TIMER_CTL_INVOUT_YES,
		TIMER_CTL_FUNC_TOUT
	),
	0xffffffff,			//定時器計數值,一旦達到該值就會產生中斷,該計數值可以最大計數57秒不中斷
	0x0								//計數器初值
};

void Timer0_Cnt()
{
	float timecnt,timeval;

	hTimer0 = TIMER_open(TIMER_DEV0,TIMER_OPEN_RESET);		//開啟定時器0,返回操作控制代碼
	TIMER_config(hTimer0,&TimerConfig);						//使用配置結構體配置定時器0

	TIMER_start(hTimer0);									//開始計數

	/***********此處為要計時的程式段***********/

	timecnt = TIMER_getCount(hTimer0);						//獲取定時器的計數值
	TIMER_pause(hTimer0);									//停止計數

	timeval = (float)(timecnt*8/600000000);					//將計數值轉化為時間值
	printf("The time spended is %fs",timeval);				//列印程式執行時間
}