现在的位置: 首页 > 综合 > 正文

避免软件延时被编译器优化

2013年04月20日 ⁄ 综合 ⁄ 共 372字 ⁄ 字号 评论关闭

在编译器中可以设置优化等级,在高优化等级下,软件延时会被优化,使得软件延时的时间间隔变短,如下所示,会被优化的代码,假设时钟周期是1us(1MHz),则安下面的程序,则延时估计会在1ms左右。但如果编译器设置了高优化等级,则下面的延时远没有1ms。

  unsigned int  repeatCount = 1000;

  while (repeatCount--) ;

       可以用下面的方法解决:

 volatile unsigned int  repeatCount = 1000;

  while (repeatCount--) ;

在变量前面加关键词volatile就可以避免被优化,关于volatile的用法参见网上资料说明。

 

====

http://hi.baidu.com/my_father_110/item/7e0b2d296f146780af48f5b3

抱歉!评论已关闭.