#ifndef __interrupt0_H__
#define __interrupt0_H__
void interrupt0() //STM中断服务子程序
{
_t2af = 0 ;
switch (cnt)
{
case 0:
PWMOUT_2 = PWMOUT_3 = PWMOUT_4 = PWMOUT_5 = PWMOUT_6 = 0;
PWMOUTbuf_1 = (PWMbuf - PWMOUTbuf_1);
_tm2al = PWMOUTbuf_1 & 0x00ff;
_tm2ah = PWMOUTbuf_1 >>8 ; //重新定义计数初值
if( PWMOUTbuf_1 >= PWMOUTbufmin1 && PWMOUTbuf_1 <= PWMOUTbufmax1)
{PWMOUTbuf_1 = PWMOUTcnt_1; PWMOUT_1 = 1;}
else
{PWMOUTbuf_1 = PWMbuf-PWMOUTcnt_1; PWMOUT_1 = 0 ; cnt = 1;} //判断脉宽是否在正常范围之内
break;
case 1:
PWMOUT_1 = PWMOUT_3 = PWMOUT_4 = PWMOUT_5 = PWMOUT_6 = 0;
PWMOUTbuf_2 = (PWMbuf - PWMOUTbuf_2);
_tm2al = PWMOUTbuf_2 & 0x00ff; //重新定义计数初值
_tm2ah = PWMOUTbuf_2 >> 8;
if(PWMOUTbuf_2 >= PWMOUTbufmin1 && PWMOUTbuf_2 <= PWMOUTbufmax1)
{PWMOUTbuf_2 = PWMOUTcnt_2; PWMOUT_2 = 1;}
else
{PWMOUTbuf_2 = PWMbuf-PWMOUTcnt_2;PWMOUT_2 = 0;cnt = 2;} //判断脉宽是否在正常范围之内
break;
case 2:
PWMOUT_1 = PWMOUT_2 = PWMOUT_4 = PWMOUT_5 = PWMOUT_6 = 0;
PWMOUTbuf_3 = (PWMbuf - PWMOUTbuf_3);
_tm2al = PWMOUTbuf_3 & 0x00ff; //重新定义计数初值
_tm2ah = PWMOUTbuf_3 >> 8;
if(PWMOUTbuf_3 >= PWMOUTbufmin1 && PWMOUTbuf_3 <= PWMOUTbufmax1)
{PWMOUTbuf_3 = PWMOUTcnt_3; PWMOUT_3 = 1;}
else
{PWMOUTbuf_3 = PWMbuf-PWMOUTcnt_3;PWMOUT_3 = 0;cnt = 3;} //判断脉宽是否在正常范围之内
break;
case 3:
PWMOUT_1 = PWMOUT_2 = PWMOUT_3 = PWMOUT_5 = PWMOUT_6 = 0;
PWMOUTbuf_4 = (PWMbuf - PWMOUTbuf_4);
_tm2al = PWMOUTbuf_4 & 0x00ff;
_tm2ah = PWMOUTbuf_4 >>8 ; //重新定义计数初值
if( PWMOUTbuf_4 >= PWMOUTbufmin1 && PWMOUTbuf_4 <= PWMOUTbufmax1)
{PWMOUTbuf_4 = PWMOUTcnt_4; PWMOUT_4 = 1;}
else
{PWMOUTbuf_4 = PWMbuf-PWMOUTcnt_4; PWMOUT_4 = 0;cnt = 4;} //判断脉宽是否在正常范围之内
break;
case 4:
PWMOUT_1 = PWMOUT_2 = PWMOUT_3 = PWMOUT_4 = PWMOUT_6 = 0;
PWMOUTbuf_5 = (PWMbuf - PWMOUTbuf_5);
_tm2al = PWMOUTbuf_5 & 0x00ff; //重新定义计数初值
_tm2ah = PWMOUTbuf_5 >> 8;
if(PWMOUTbuf_5 >= PWMOUTbufmin1 && PWMOUTbuf_5 <= PWMOUTbufmax1)
{PWMOUTbuf_5 = PWMOUTcnt_5; PWMOUT_5 = 1;}
else
{PWMOUTbuf_5 = PWMbuf-PWMOUTcnt_5;PWMOUT_5 = 0;cnt = 5;} //判断脉宽是否在正常范围之内
break;
case 5:
PWMOUT_1 = PWMOUT_2 = PWMOUT_3 = PWMOUT_4 = PWMOUT_5 = 0;
PWMOUTbuf_6 = (PWMbuf - PWMOUTbuf_6);
_tm2al = PWMOUTbuf_6 & 0x00ff; //重新定义计数初值
_tm2ah = PWMOUTbuf_6 >> 8;
if(PWMOUTbuf_6 >= PWMOUTbufmin1 && PWMOUTbuf_6 <= PWMOUTbufmax1)
{PWMOUTbuf_6 = PWMOUTcnt_6; PWMOUT_6 = 1;}
else
{PWMOUTbuf_6 = PWMbuf-PWMOUTcnt_6;PWMOUT_6 = 0;cnt = 0;} //判断脉宽是否在正常范围之内
break;
default: break;
}
}
#endif。