做一個 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;
}
}
}
大致這樣一個東西。
|