DSP2812 使用delay()函数延时

[复制链接]
3417|21
 楼主| lwsn 发表于 2017-6-27 11:16 | 显示全部楼层 |阅读模式

dsp2812 使用delay()函数延时,如何计算延时时间?程序如下,系统时钟设置为150MHz.跪求各位大神
void delay(void)
{
   int k,j;
   for(k=0;k<1000;k++)
   {
        for(j=0;j<5000;j++){}
               
   } //延时
}
Thor9 发表于 2017-6-27 11:37 | 显示全部楼层
有没有定义这个函数DELAY_US();
Mattheww 发表于 2017-6-27 11:48 | 显示全部楼层
你这样的延时涉及到底层汇编,还有流水线工作原理,估算起来麻烦,也不便于移植。
Erichk 发表于 2017-6-27 16:07 | 显示全部楼层
这种延进不准确的。要看编译后的汇编情况
Thorald 发表于 2017-6-27 16:57 | 显示全部楼层
一程序在没有优化时,工作正常,而优化了以后就不正常工作了。费了好多的事,最后找到是延时函数的问题:在没优化时,它延时比较长,而优化了以后,延却短了(根据优化级别延时有别)。
Stannis 发表于 2017-6-27 18:27 | 显示全部楼层
要准确延时,还需要定时器参与,或者在某一优化级别下,看看汇编代码来计算它延时时间。
kkzz 发表于 2017-6-27 23:25 | 显示全部楼层
调用DELAY_US
hudi008 发表于 2017-6-27 23:25 | 显示全部楼层
Thor9 发表于 2017-6-27 11:37
有没有定义这个函数DELAY_US();

延时程序DELAY_US(A),在文件DSP281x_Examples.h中有如下宏定义
lzmm 发表于 2017-6-27 23:25 | 显示全部楼层
Thor9 发表于 2017-6-27 11:37
有没有定义这个函数DELAY_US();

使用DELAY_US(A)时要想延时时间准确必须使其在RAM里运行
selongli 发表于 2017-6-27 23:27 | 显示全部楼层
DSP2812中,添加DELAY_US
xiaoyaodz 发表于 2017-6-27 23:27 | 显示全部楼层
百度一个 TMS320F2812 的延时程序
febgxu 发表于 2017-6-27 23:28 | 显示全部楼层
可以借助CCS中的CLOCK功能计算
dspmana 发表于 2017-6-27 23:28 | 显示全部楼层
extern void DSP_delay(Uint32 loopCount);  
kkzz 发表于 2017-6-27 23:29 | 显示全部楼层
调用dsp自身带的时间延时函数
hudi008 发表于 2017-6-27 23:29 | 显示全部楼层
Thor9 发表于 2017-6-27 11:37
有没有定义这个函数DELAY_US();

#define DELAY_US(A) DSP28x_usDelay(((((long double) A * 1000.0L) / (long double)CPU_RATE) - 9.0L) / 5.0L)
lzmm 发表于 2017-6-27 23:29 | 显示全部楼层
其最小指令周期为6nS
minzisc 发表于 2017-6-27 23:29 | 显示全部楼层
需要延时A微妙就把DELAY_US()的参数设置
selongli 发表于 2017-6-27 23:29 | 显示全部楼层
效果怎么样
fentianyou 发表于 2017-6-27 23:29 | 显示全部楼层
DSP工程里面是自带了一个延时程序的。
xiaoyaodz 发表于 2017-6-27 23:29 | 显示全部楼层
系统自带的DELAY_US()延时函数很好用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

824

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部