请问ccs5仿真的时候如何显示时间?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
bei zhang, 有两种方法可以来测试程序执行的CPU cycle数,之后可根据MCLK来计算。
方法一:
download 程序后,Run->Clock->Enable,具体操作参考:
http://processors.wiki.ti.com/index.php/Profile_clock_in_CCS
方法二:
可以看每个函数的执行cycle,功能较强大,你可以试试,参考链接如下:
http://processors.wiki.ti.com/index.php/Profiler
希望对你有帮助!
Lina Lian 谢谢您的解答,我还有几个问题想请教一下:
1)我刚刚在学校430的时钟系统,我看的TI公司提供的例程上面有一个函数
while(1)
{
P1OUT ^= BIT1; //LED
__delay_cycles(60000); // Delay
}
__delay_cycles(60000); // Delay请问这个在CCS里面有吗?我调试的时候CCS没有报错但是没法看到LED的闪烁,是因为我的MCLK是1M,那这个函数的时间就是1us*60000=0.06S时间太短还是,ccs里面没有这个函数?
2)因为__delay_cycles(60000); 无法实现我使用for循环来实现延时
for(i=50000;i>0;i--); // Delay
但是我不太清楚这一个for循环需要多少时间,我根据实际下载到板子里的现象大约是0.5-1S,不知道能不能通过具体的计算得知稍微精确的时间?
__delay_cycles是一个本征函数,是延迟n个机器周期的。
使用延迟你可以用while,for,__delay_cycles或者timer都可以做到。使用timer的延迟精度较高
bei zhang,
如Peter所说,__delay_cycles()是本征函数,是确定有这个函数的。如果主频为1MHz, __delay_cycles(500000)试试这个,0.5s LED状态翻转一次,可以很清楚的看到LED闪灯。
其实还是推荐你使用timer来进行此类定时,一方面可以进入低功耗模式,降低功耗,另一方面,timer的定时精度更高。
此外虽然 while, for也可用来延时,但是精度不高。且随着complier的优化等级,版本等的不同,可能会导致相同的程序但是延时不同。故相较while, for还是推荐用__delay_cycles()。
关于__delay_cycles()以及其他本征函数的具体介绍可以参考下面文档:MSP430 Optimizing C/C++ Compiler v 4.1 User's Guide中的section 6.7
http://www.ti.com/lit/ug/slau132g/slau132g.pdf
希望对你有帮助!O(∩_∩)O~