|
一、原理
C28的CPU有重复指令,这个指令并非单独使用,它是和其它可以执行重复操作的指令一起使用的,
使用重复指令后,程序所占空间特别小,语句也特别简单。
程序中,一般都少不了延时程序段,对于短延时,C28的CPU有个很好的选择,就是使用重复指令解决。
RPT (次数) || (重复执行的指令(+操作码))
RPT指令,后面的 (次数 ) 可以是立即数,此时的最大次数是255,执行256次重复。
当使用立即数时,它的特点是,只有这一条语句,不需要其它任何额外的 “ 协助 ”。
运行时间: (次数) + 1 (单位:时钟数)
(次数 ) 也可以是16位的存储器内所存的数据。此时执行的最大次数是65536,即允许的最大数是65535。
使用存储器时,它的运行时间为: (次数)+4(单位:时钟数)
二、用法
1、使用立即数。
asm(" RPT #255 || NOP");
在C语言里嵌入汇编,使用延时达到一定时钟周期数。
2、使用存储器。
现假设延时次数放一变量中:
Uint16 Times;
使用时,在C语言中嵌入汇编:
asm(" RPT @Times || NOP");
---------------------- 这样是不是很方便?是不是还可以精确控制延时时间?
|
赞赏
-
1
查看全部赞赏
-
|