码迷,mamicode.com
首页 > 其他好文 > 详细

51使用while进行延时的问题

时间:2017-01-09 11:06:41      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:仿真   void   原因   延时   代码   pga   调试   for   log   

上周写了一个简单的IO口翻转的程序,但是很奇怪,在FPGA板子上怎么也跑不起来。

后面发现问题可能出在延时函数上。

void Delay(unsigned char t)
{
    while(--t);
}

while(--t)在有些编译中无法正确编译--t,编译器认为这样是可以优化的(这个是我们老大给出的可能回答)。所以它们就对它进行了优化。其实具体原因我也不是很清楚。

后面换成下面这种形式或者for循环一切就正常了。

void Delay(unsigned int t){
    while(t!=0){
        t=t-1; 
    }
}

当然啦,具体是不是编译器的原因,我也不是很清楚,因为调试看汇编代码是没有问题的。keil这边没问题,那应该就是仿真那边的问题了。

51使用while进行延时的问题

标签:仿真   void   原因   延时   代码   pga   调试   for   log   

原文地址:http://www.cnblogs.com/cuglkb/p/6264202.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!