/**************************** (C) COPYRIGHT 2017 Fortiortech shenzhen *****************************
* File Name          : AddFunction.h
* Author             : Vina Peng, Fortiortech Appliction Team
* Version            : V1.0
* Date               : 10-Apr-2017
* Description        : This file contains all the common data types used for
*                      Motor Control.
***************************************************************************************************
* All Rights Reserved
**************************************************************************************************/

/* Define to prevent recursive inclusion -------------------------------------*/

#ifndef __AddFuntion_H_
#define __AddFuntion_H_

/* Exported types -------------------------------------------------------------------------------*/
typedef union 
 {
   uint32 PWMCompareAMP;// 比较值标幺化的值
   uint16 PWMCompareUpdate[2];
 }PWMD;
typedef struct
{
		uint16 PWMCompare;   // 比较值
		uint16 PWMARR;       // 周期值
		uint16 PWMCompareOld;// 上一次的比较值  
    PWMD   pwm;          // 使用共同体，将比较值乘以32768
	  uint16 PWMARROld;    // 上一次的周期值
	  uint16 PWMFlag;      // PWM标志位，置1期间不更新duty
    uint16 PWMARRUpdate; // 计算中的周期值
	  uint16 PWMDuty;      // PWM占空比，Q15格式
	  int16 PWMUpdateFlag; // PWM新的duty更新
  	uint32 PWMVSum;      // PWM的总和
	  uint16 PWMcnt;       // PWM求平均技术
    uint8  PWMDivFlag;   // PWM的除法标志位
    uint16 vsp;

}PWMINPUTCAL;
/* Exported variables ---------------------------------------------------------------------------*/
extern PWMINPUTCAL      idata     mcPwmInput;
/* Exported functions ---------------------------------------------------------------------------*/
extern void PWMInputCapture(void);
extern uint16 PwmOutput_DR;
extern uint16 PwmOutput_ARR;

#endif