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循环语句进行的延时操作:

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