您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> [求助] bf533 软件延时的疑问
本帖共有457个阅读者
发表帖子 发表投票 回复主题
[求助] bf533 软件延时的疑问
liuhuarong(论坛新手)
liuhuarong
头衔:社区公民
帮派:无帮无派
帖数:6
金钱:160
积分:10
注册时间:2013/4/15
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
[求助] bf533 软件延时的疑问

新手请教个问题

void delay(unsigned int tem)
{
int i;
for(i=0;i<tem;i++)
asm("nop;");
} 怎么算出大概延时的数量级?以及能否通过读CYCLES寄存器值算出这段代码的执行时间?


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/4/16 14:15:28
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
延时时间看CYCLES寄存器的值比较精确,另外DSP会对这样的空循环函数自动做优化,影响延时效果,所以建议在延时函数前加上:
#pragma optimize_off
以防止优化。
CYCLES寄存器 记录的是内核时钟,用该值除以你的内核频率就是消耗的时间。

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/4/16 16:59:39
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159249 Call, 1 Queries, Processed in 0.000000 second(s),