做一个 10ms 的定时中断,中断程序大致如下: 因为你具体也没说清楚,虽然不符合 闭环逻辑,但是该你参考应该足够了。
char T0_Count,Mode_Count,Mode;
void T0_INT() interrupt 1
{
if(++T0_Count == 100)
{
T0_Count = 0;
switch(Mode)
{
case 0: //初始状态
IO = 1;
Mode++;
break;
case 1:
if(++Mode_Count==5)
{
Mode_Count = 0;
IO = 0;
Mode++;
}
break;
case 2:
if(++Mode_Count==1)
{
Mode_Count = 0;
IO = 1;
Mode++;
}
break;
case 3:
if(++Mode_Count==6)
{
Mode_Count = 0;
IO = 0; //接下来变啥??
Mode++; //要不要 Mode = 0? 啥时候闭环?
}
break;
}
}
}
大致这样一个东西。
|