MSP430F149编程问题,,这种延时函数谁能给我解释下不,,我不是太懂
#defineCPU_F((double)8000000)#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/...
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 展开
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0)) 展开
1个回答
展开全部
如果这样写,应该更好理解:
#define delay_us(x) __delay_cycles(x*8)
#define delay_ms(x) delay_us(x*1000)
所以关键在__delay_cycles。这应该也是个函数,它根据单片机主频精确计算出运行一次所花的时间,譬如是0.125us。那么要延迟1us,相当于执行8次该函数。
至于#define CPU_F ((double)8000000),这是根据单片机手册及主频而设定的一个值。以你目前的水平,可以不关注具体的细节,只需拿过来用就好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询