#include "H/Function_Init.H"

#if (Test == 4)

unsigned int xdata PWM_REG[8] _at_ 0x100;	//PWM2/3占空比调节寄存器

void PWM_Init(void);
/*****************************************************
*函数名称：void PWM_Test(void)
*函数功能：PWM测试
*入口参数：void
*出口参数：void
*****************************************************/
void PWM_Test(void)
{
  PWM_Init();
  while(1)
  {
  }
}

/*****************************************************
*函数名称：void PWM_Init(void)
*函数功能：PWM独立模式初始化
*入口参数：void
*出口参数：void
*****************************************************/
void PWM_Init(void)
{
  //设置了周期为6ms，占空比为50%的PWM2波形
	TXINX &= 0XF8;
	TXINX |= 0X02;  //指向T2
  THX = 0X00;     //计数器高8位清零
  TLX =  0x00;    //计数器低8位清零
  TXMOD |= 0x30;      //使能PWM20，PWM21波形输出
  TXMOD |= 0x08;      //PWM21输出反向
	TXMOD |= 0x00;      //T2选择时钟Fsys/12
  RCAPXH = 0x3E;      //配置周期寄存器高8位
  RCAPXL = 0x80;      //配置周期寄存器低8位
  PWM_REG[0] = 0x1F40;      //配置PWM20占空比
  PWM_REG[1] = 0x1F40;      //配置PWM21占空比
  TXCON |= 0x04;        //使能PWM2
  ET2 = 0;        //关闭PWM2中断
	
	//设置了周期为100us，占空比为50%的PWM3波形
	TXINX &= 0XF8;
	TXINX |= 0X03;  //指向T3
  THX = 0X00;     //计数器高8位清零
  TLX =  0x00;    //计数器低8位清零
  TXMOD |= 0x30;      //使能PWM30，PWM31波形输出
  TXMOD |= 0x08;      //PWM31输出反向
	TXMOD |= 0x80;      //T3选择时钟Fsys
  RCAPXH = 0x0C;      //配置周期寄存器高8位
  RCAPXL = 0x80;      //配置周期寄存器低8位
  PWM_REG[2] = 0x0640;      //配置PWM30占空比
  PWM_REG[3] = 0x0640;      //配置PWM31占空比
  TXCON |= 0x04;        //使能PWM3
  IE1 &= ~0x40;        //关闭PWM3中断

}

#endif

