一个流水灯, void led_show() { ulint temp; //用来移位 IODIR0 = 0x00000000; //设置输入 temp = IOPIN0; //把当前值读回来,避免用全局变量 temp = temp << 1; //移位 if ( temp == 0x00000100 )//如果移动到一定长度 temp = 0x00000001; IODIR0 = 0xffffffff; //再设置成输出 IOSET0 = temp; //设置1位 IOCLR0 = ~temp; //设置0位 } 这个函数前有一个 IODIR0 = 0xffffffff; //初始化中设置成输出 IOSET0 =0x00000001;//设置1位 灯只闪了一下, 我第一次进led_show() temp读端口状态为全0,应该为0x00000001,为什么呢?请指点,谢谢.
|