打印

DSP2812 使用delay()函数延时

[复制链接]
3040|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lwsn|  楼主 | 2017-6-27 11:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
Thor9| | 2017-6-27 11:37 | 只看该作者
有没有定义这个函数DELAY_US();

使用特权

评论回复
板凳
Mattheww| | 2017-6-27 11:48 | 只看该作者
你这样的延时涉及到底层汇编,还有流水线工作原理,估算起来麻烦,也不便于移植。

使用特权

评论回复
地板
Erichk| | 2017-6-27 16:07 | 只看该作者
这种延进不准确的。要看编译后的汇编情况

使用特权

评论回复
5
Thorald| | 2017-6-27 16:57 | 只看该作者
一程序在没有优化时,工作正常,而优化了以后就不正常工作了。费了好多的事,最后找到是延时函数的问题:在没优化时,它延时比较长,而优化了以后,延却短了(根据优化级别延时有别)。

使用特权

评论回复
6
Stannis| | 2017-6-27 18:27 | 只看该作者
要准确延时,还需要定时器参与,或者在某一优化级别下,看看汇编代码来计算它延时时间。

使用特权

评论回复
7
kkzz| | 2017-6-27 23:25 | 只看该作者
调用DELAY_US

使用特权

评论回复
8
hudi008| | 2017-6-27 23:25 | 只看该作者
Thor9 发表于 2017-6-27 11:37
有没有定义这个函数DELAY_US();

延时程序DELAY_US(A),在文件DSP281x_Examples.h中有如下宏定义

使用特权

评论回复
9
lzmm| | 2017-6-27 23:25 | 只看该作者
Thor9 发表于 2017-6-27 11:37
有没有定义这个函数DELAY_US();

使用DELAY_US(A)时要想延时时间准确必须使其在RAM里运行

使用特权

评论回复
10
selongli| | 2017-6-27 23:27 | 只看该作者
DSP2812中,添加DELAY_US

使用特权

评论回复
11
xiaoyaodz| | 2017-6-27 23:27 | 只看该作者
百度一个 TMS320F2812 的延时程序

使用特权

评论回复
12
febgxu| | 2017-6-27 23:28 | 只看该作者
可以借助CCS中的CLOCK功能计算

使用特权

评论回复
13
dspmana| | 2017-6-27 23:28 | 只看该作者
extern void DSP_delay(Uint32 loopCount);  

使用特权

评论回复
14
kkzz| | 2017-6-27 23:29 | 只看该作者
调用dsp自身带的时间延时函数

使用特权

评论回复
15
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)

使用特权

评论回复
16
lzmm| | 2017-6-27 23:29 | 只看该作者
其最小指令周期为6nS

使用特权

评论回复
17
minzisc| | 2017-6-27 23:29 | 只看该作者
需要延时A微妙就把DELAY_US()的参数设置

使用特权

评论回复
18
selongli| | 2017-6-27 23:29 | 只看该作者
效果怎么样

使用特权

评论回复
19
fentianyou| | 2017-6-27 23:29 | 只看该作者
DSP工程里面是自带了一个延时程序的。

使用特权

评论回复
20
xiaoyaodz| | 2017-6-27 23:29 | 只看该作者
系统自带的DELAY_US()延时函数很好用。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

824

帖子

1

粉丝