首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 单片机 >

关于定义(延时函数)的有关问题

2012-05-30 
关于定义(延时函数)的问题//---精确延时函数---------#define CPU_F ((double)22118400)//晶振#define del

关于定义(延时函数)的问题
//---精确延时函数---------
#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);然后一点一点的加

热点排行