for循环延时_dsp中的tms320的延时函数如何使用

本文介绍了在CCS10.0环境下,针对TMS320F2812微控制器如何通过ASM指令实现精确延时。通过计算晶振频率和时钟周期,得出每个延时周期为6.67ns。示例代码展示了使用RPT指令和NOP指令进行延时,通过循环次数调整延时微秒级别。这种方法对于实时系统的定时任务非常有用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ccs10.0开发tms320f2812时需要用到延时.这里提供一个写法.

由于tms320f2812的晶振是35MHZ,经过倍频后是150MHZ,所以也就是150M时钟振荡就是一秒钟.那么一次震荡也就是一个时钟周期就是1/(150*10的6次幂)最后得到的结果是0.xxxx秒,那我换算下就是约等于6.67ns纳秒.

这里的进制关系是:一秒=10的9次幂纳秒.

因为asm(" RPT #1 ||NOP");延时是6.67ns,其中的#1就是一个时钟周期,也就是cpu运行一个指令的时间.也就是我们上边提到的6.67纳秒了.

在下面的延时中循环了1000次,所以是6.67us.注意代码rpt前边是有个空格的哦.否则放到编译器中会报错的.

void delay(int k1)// 延时6.67us

{

int k=0;

for( k=0;k

{

asm(" RPT #1 ||NOP");//1个周期.因为是150mhz,所以一个周期是6.67ns.

}

}

下图是这是ccs10.0中的for循环语句进行的延时操作:

86be4b9146882a8cda6a314267a45c02.png

这是ccs10.0中的for循环语句进行的延时操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值