SysCtlDelay()函数解析
标签: SysCtlDelay 函数 解析 2010-10-23 17:00
最近经常用到SysCtlDelay()函数,觉得这函数不错,可以做到精确延时。不久前,做NRF905模块的时候,有一处要精确到610us。
TI的资料中,此函数在Sysctl.c中是这样定义的:
#if defined(ewarm) || defined(DOXYGEN) //定义在IAR的编译环境中
void SysCtlDelay(unsigned long ulCount)
{
__asm(" subs r0, #1\n"
" bne.n SysCtlDelay\n"
" bx lr");
}
#endif
#if defined(codered) || defined(gcc) || defined(sourcerygxx) //定义在codered、gcc、sourcerygcc编译环境下
void __attribute__((naked))
SysCtlDelay(unsigned long ulCount)
{
__asm(" subs r0, #1\n"
" bne SysCtlDelay\n"
" bx lr");
}
#endif
#if defined(rvmdk) || defined(__ARMCC_VERSION) //在KEIL MDK的编译环境下
__asm void
SysCtlDelay(unsigned long ulCount)
{
subs r0, #1;
bne SysCtlDelay;
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载