主题中讨论的其他器件:CC3200、 CC3220SF
您好!
我在 SDK driverlib 中使用 utils.c 中的 UtilsDelay 来实现微秒延迟。
用于 UtilsDelay 的汇编代码(无符号长整型 ulCount)
//对于 CCS、在纯汇编语言中实现此函数。 这会阻止 TI
//编译器不会对优化器执行有趣的操作。
//
#if defined (CCS)(如果已定义)
_asm (" .sect \".text:UtilsDelay)"\n"
" .clink\n"
" .thumbfunc UtilsDelay (.thumbfunc UtilsDelay)\n"
" .thumb \n"
" .global UtilsDelay (.global 实用程序删除)\n"
"实用程序延迟:\n"
" subs r0、#1\n"
" 伯恩·乌蒂斯·德莱恩"
" BX lr\n");
#endif
根据文档 、UtilsDelay (unsigned long ulCount)函数需要3个时钟周期才能执行。
在 CC3200中、以下计算得出10us 延迟的20us 延迟比预期的要大2倍
ulCount = 10 * 80/3
预计:10us 延迟
输出:20us 延迟
在 CC3220SF 中、以下是10us 延迟的计算结果、延迟为40us、比预期的延迟高出4倍
ulCount = 10 * 80/3
预计:10us 延迟
输出:40us 延迟
我的问题:
为什么在 CC3200中看到的延迟是原来的2倍、在 CC3220SF 中看到的延迟是原来的4倍
谢谢、
科尔内利斯 S