Board logo

标题: 讨论usleep函数在for循环中的问题 请高手指教 [打印本页]

作者: wagon717    时间: 2007-5-31 19:51     标题: 讨论usleep函数在for循环中的问题 请高手指教

晚上写了个跑马灯的小程序(led灯顺序亮起 无限循环), 如下:

#include "system.h"
#include "altera_avalon_pio_regs.h"

int main(void)
{
    int number = 1;
    int i = 0;
    while(1){
        for(i=0;i < 8;i++)
        {
            IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,number);
            number *= 2;
            usleep(500000);
        }
        number = 1;
    }
  /*  while(1){
        IOWR_ALTERA_AVALON_PIO_DATA(PIO_0_BASE,number);
        number *= 2;
        i++;
        if(i == 8){
            i = 0;
            number = 1;
        }
        usleep(500000);
    }*/
    return 0;
}

值得注意的是程序中注释和未注释的部分 如果用注释部分的代码则可以得到完美的显示, 而用未注释部分的代码则只能循环一次~ 单步调试 发现程序没有问题 但是只能循环一遍,  然后试着把usleep函数中的参数从500000该成50000,无限循环就可以实现了 显然问题出在usleep函数上 请各位高手指点~






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0