430 精确延时问题 今天在晚上发现一种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,否则就没有延时了。 该方法缺点:不能传递变量,只能将常数作为参数 IAR FOR 430 中精确软件延时方法 标签: IAR FOR 软件 延时 2010-11-04 10:15 IAR FOR 430 中精确软件延时方法 在用单片机的时候常常会用到延时函数,430 也不例外,常见的形式有: void delay(unsigned int ms) { unsigned int i,j; for( i=0;i