晚上写了个跑马灯的小程序(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 |