TI中文支持网
TI专业的中文技术问题搜集分享网站

TM4C1294中,怎么计算一段程序的运行时间?

我的一个1294的程序中,主程序如下:

int
main(void)
{
//SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);
g_ui32SysClock = MAP_SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |
SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |
SYSCTL_CFG_VCO_480), 120000000);
//************PWM Period Init**********************************//
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE, GPIO_PIN_2);//B通道连接引脚
GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_2 , ~GPIO_PIN_2);
GPIOPinTypeGPIOOutput(GPIO_PORTA_BASE, GPIO_PIN_4);//B通道连接引脚
GPIOPinWrite(GPIO_PORTA_BASE, GPIO_PIN_4 , GPIO_PIN_4);

CONFIG_UART();

CONFIG_PWM();

while(1)
{
//*************************************************
PWM_Para_Set(Frequency_pwm,PWM_Duty);
//********************************************
}
}

我该怎么计算while循环里面执行一次所需要的时间?

xyz549040622:

我一般是通过反转IO,用逻辑分析仪或者示波器抓波形来实现的。
你也可以试试这个页面提到的CCS的计数功能
processors.wiki.ti.com/…/Watchpoints_for_Stellaris_in_CCS

user5327409:

回复 xyz549040622:

程序中不同语句的执行时间相同吗?就像汇编程序里面什么类型的语句用几个机器周期的那样?

我的while循环里面不止有IO口的输入输出操作,还有其他的一些操作,光靠IO口的执行时间能够判断吗?

Susan Yang:

建议您使用CCS的 Clock Cycle统计功能

您可以看一下之前的讨论贴

e2echina.ti.com/…/10782

xyz549040622:

回复 user5327409:

我觉得这个测量到的时间是最准确的,如果你的程序太多,看汇编指令的多少估算时间,工作量很大,和实际也应该是有误差的。

赞(0)
未经允许不得转载:TI中文支持网 » TM4C1294中,怎么计算一段程序的运行时间?
分享到: 更多 (0)