在这里, 我来讨论一下关于MSP430单片机使用__delay_cycles延时的问题.
IAR for MSP430编译器提供了一个编译器内联的精确延时函数(并非真正的
函数)以提供用户精确延时使用, 该函数原型是:
__intrinsic void __delay_cycles(unsigned long __cycles);
该内部函数实现__cycles个CPU周期的延时,但对于该参数的设置,我要陈述一下:
__cycles需要我们传递的是CPU运行的周期个数
网上普遍的用法是:
#define CPU_CLOCK 8000000
#define delay_us(us) __delay_cycles(CPU_CLOCK/1000000*(us))
#define delay_ms(ms) __delay_cycles(CPU_CLOCK/1000*(ms))
在CPU主时钟频率为8MHz时, 这确实没有问题, 但是这样的写法:
[MSP430] 对MSP430单片机__delay_cycles精确延时的说明及改正
最新推荐文章于 2022-09-29 11:05:44 发布
本文详细介绍了MSP430单片机中使用__delay_cycles进行精确延时的方法,并针对可能出现的问题提出了改正措施。
摘要由CSDN通过智能技术生成