将跑马灯任务程序的代码又更改了一下,流速均匀了,但这是怎么个原因还是不知道:
void LedTask(void)
{
static unsigned char Su8Data=0x80; //加static修饰的局部变量,每次进来都会保留上一次值。
static unsigned char Su8Cnt=0; //加static修饰的局部变量,每次进来都会保留上一次值。
if(0==vGu16TimeCnt_1) //时间到
{
vGu8TimeFlag_1=0;
vGu16TimeCnt_1=BLINK_TIME_1; //重装定时的时间
vGu8TimeFlag_1=1;
P0=Su8Data; //Su8Data的8个位代表8个LED的状态,0为点亮,1为熄灭。
Su8Data=0x80>>Su8Cnt; //右移一位
Su8Cnt++; //计数器累加1
if(Su8Cnt>=8) //移位大于等于8次后,重新赋初值
{
Su8Cnt=0;
//Su8Data=0x80; //重新赋初值,继续下一次循环移动
}
}
}
|