TI中文支持网
TI专业的中文技术问题搜集分享网站

F28004x CLA 延时程序

请问F28004x的CLA 中支不支持 延时函数,如  DELAY_US(1);  或  __asm(" RPT #10 || NOP"); 这样的us级延时函数,或者CLA有没有自己延时函数? 

Susan Yang:

DELAY_US无法在CLA上工作。该函数是用C28x程序集编写的。您可以在CLA汇编中编写一,有可能不会非常精确

; \brief CLA delay function
; \param[in] N counter in MR0
;
; This function basically loops "N" times
; cycles (SYSCLK) = 2(prologue) + 8*N + 4(epilogue)
;.global _delay_cla.sect "Cla1Prog"
_delay_cla:.asmfuncMMOVIZMR1, #0 ; decrement valueMMOVXIMR1, #1_delay_cla_loop:MSUB32MR0, MR0, MR1 ; set ZF when MR0 is 0MNOPMNOPMNOPMBCNDD_delay_cla_loop, NEQMNOPMNOPMNOPMRCNDDUNCMNOPMNOPMNOP.endasmfunc

您可以在.asm文件中定义它,并声明一个原型“ void delay_cla(int32_t N);”。然后将该文件放在CLA包含的头文件中。时间为:2 + 4 + 8N sysclk个周期

另外可以参考之前的帖子

 

赞(0)
未经允许不得转载:TI中文支持网 » F28004x CLA 延时程序
分享到: 更多 (0)