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

如下是我写的一个简单的延时,但这个时间是不是按如下大概计算的呢?(还有,刚上来就看到一大堆的发票广告   寒  _ _ | |

void Delay(void)
{
    INT32U i;
    INT32U start_Cycle = 0;
    INT32U end_Cycle = 0;
    INT32U diff_cycle = 0;

    asm("%0 = CYCLES;":"=d"(start_Cycle));
    
    for(i = 0; i < 1000; i++)
    {
        asm ("nop;");
    }
    
    asm("%0 = CYCLES;":"=d"(end_Cycle));
    
    diff_cycle = end_Cycle - start_Cycle;
}

diff_cycle = 13020

如果内核时钟为400MHz,那是不是说延时时间为13020 * (1 / 400)us = 32.55us呢?


这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/15 10:05:29
blackfin(论坛游民)
blackfin
头衔:社区公民
帮派:无帮无派
帖数:114
金钱:1105
积分:153
注册时间:2011/6/10
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
没人知道么?那大家的延时是怎么定的

这家伙很懒,什么也没有留下!
等级:论坛游民 参考IP地址:*.*.*.*
2011/12/15 13:52:49
forgetall(论坛新手)
forgetall
头衔:社区公民
帮派:无帮无派
帖数:28
金钱:295
积分:29
注册时间:2011/12/13
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
您要多精确呢,如果要精确延时,最好用定时器
如果是您这种,可以在延时函数的开头和结尾翻转一个io,然后用示波器测一下

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2011/12/15 14:42:55
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

是这样计算的,得到的时钟数是内核时钟运行的计数,除以400M,得到的就是运行的耗时。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2011/12/15 22:48:29
pangyan111111(论坛新手)
pangyan111111
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:110
积分:2
注册时间:2013/3/11
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
如果要延时32.55us的话,是不是把 INT32U end_Cycle = 0;初始化为13020即可。  另外这个函数51x可用吗

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/8/30 13:05:25
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
不是的,上面的代码仅仅是计算:
    for(i = 0; i < 1000; i++)
    {
        asm ("nop;");
    }
所占用的时间,并不是设置多长时间,就延时多长时间。
diff_cycle = 13020 是计算出的结果,并非设定的延时时间。

BF51X可以用,要调用头文件:
#include <cdefBF518.h>
#include <ccblkfn.h>

你试试看编译有报错没

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