发现一种MSP430的准确延时办法,经测验,的确狠准确。最低能够准确到1/OSC,例如:假如选用8MHz的晶体,那么最小延时便是125ns,现已使用示波器经过验证。
具体做法如下:
先做如下预界说:
#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))
其间榜首行中的8000000为时钟,能够依据自己时钟设置。
然后在程序中直接条用delay_us和delay_ms即可。十分好用,入:
delay_ms (1); //延时1ms
delay_us(1); //延时1us
delay_us(0.125); //延时0.125us
留意:最低延时只能是1/OSC,不然就没有延时了。
该办法缺陷:不能传递变量,只能将常数作为参数