关于定义(延时函数)的问题
//---精确延时函数---------
#define CPU_F ((double)22118400) //晶振
#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))
我定义了上面的延时函数,然后再main里面调用:
delay_ms(80);
发现过不了,卡主了,是怎么回事?
[解决办法]
什么单片机
[解决办法]
你要把原函数__delay_cycles((long)(CPU_F*(double)x/1000.0))贴出来啊
[解决办法]
__delay_cycles(long cycles)
这个函数你帖出来
[解决办法]
兄弟,你干吗用浮点数啊?这种定点cpu做浮点运算是几何级数的耗时的。
你的除数倒不如用1024,可以直接做移位呢。
真要是需要精确到极致的定时,就该用汇编去优化的。
[解决办法]
试试delay_ms(1);然后一点一点的加