CCS中使用DSP定時器的計時程式,可以精確計算某一段程式的執行時間
阿新 • • 發佈:2019-01-25
#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); //列印程式執行時間 }