#ifndef __ProtectSET_H_
#define __ProtectSET_H_

#include <Myproject.h>

/*保护使能位*/
#define VoltageProtectEnable             (0)                      // 电压保护，0,不使能；1，使能
#define StartProtectEnable               (0)                      // 启动保护，0,不使能；1，使能
#define StallProtectEnable               (0)                      // 堵转保护，0,不使能；1，使能
#define PhaseLossProtectEnable           (0)                      // 缺相保护，0,不使能；1，使能
#define TempProtectEnable                (0)                      // IPM温度 保护，0,不使能；1，使能
#define CummProtectEnable                (0)                      // 通信保护，0,不使能；1，使能
#define TempSensorProtectEnable          (0)                      // 
#define ShuruLossProtectEnable           (0)                      // 输入缺相保护，0,不使能；1，使能

/*硬件过流保护方式选择*/
#define Hardware_FO_Protect            (1)                                     // 硬件FO过流保护使能，适用于IPM有FO保护的场合
#define Hardware_CMP_Protect           (2)                                     // 硬件CMP比较过流保护使能，适用于MOS管应用场合
#define Hardware_FO_CMP_Protect        (3)                                     // 硬件CMP比较和FO过流保护都使能
#define Hardware_Protect_Disable       (4)                                     // 硬件过流保护禁止，用于测试
#define HardwareCurrent_Protect        (Hardware_FO_Protect)                // 硬件过流保护实现方式

/*硬件过流保护比较值来源*/
#define Compare_DAC                    (0)                                     // DAC设置硬件过流值
#define Compare_Hardware               (1)                                     // 硬件设置硬件过流值
#define Compare_Mode                   (Compare_DAC)                              // 硬件过流值的来源

/*硬件过流保护值设置*/
#define OverHardcurrentValue            (5.0)                    // (A) 正常运行时DAC模式下的硬件过流值   22  13
#define TorOverHardcurrentValue         (5.0)                    // (A) 转矩补偿时DAC模式下的硬件过流值   22  13

/* 软件过流保护参数设置 */
#define SW_OC_CurrentVal               I_Value(20.0)              ///< (A)软件过流值
#define SW_OC_DectTime                 (50)                       ///< (ms)软件过流检测时间


/*过欠压保护值设定*/
#define OVER_PROTECT_VALUE              _Q15(720.0 / HW_BOARD_VOLT_MAX)
#define UNDER_PROTECT_VALUE             _Q15(100.0 / HW_BOARD_VOLT_MAX)
#define OVER_RECOVER_VALUE              _Q15(680.0 / HW_BOARD_VOLT_MAX)
#define UNDER_RECOVER_VALUE             _Q15(130.0 / HW_BOARD_VOLT_MAX)



/*缺相保护值设定*/
#define PhaseLossCurrentValue          I_Value(0.3)               // (A)  缺相电流值
#define PhaseLossRecoverTime           (20000)                      // (ms) 缺相保护时间

/*堵转保护值设定*/
#define StallCurrentValue1             I_Value(5.0)               // (A)  堵转过流值
#define StallRecoverTime               (20000)                     // (ms) 启动运行时间

/*IPM温度保护值设定*/

#define TempProtValue                  (1050)                     // 扩大10倍（度1050
#define TempRecoverValue               (700)                      // 扩大10倍（度）800

/*过流恢复*/
#define CurrentRecoverEnable           (1)                        // 过流保护使能位, 0，不使能；1，使能
#define OverCurrentRecoverTime         (20000)                     // (ms) 过流保护恢复时间

#define IbusOffsetRecoverEnable        (1)                        //压机偏执恢复
#define IbusOffsetRecoverTime          (20000)                      // (ms) 恢复时间

/*启动恢复次数*/
#define StartProtectRestartTimes        (200)
/*过流恢复次数*/
#define CurrentProtectRestartTimes      (50)
/*堵转恢复次数*/
#define StallProtectRestartTimes        (5)
/*缺相恢复次数*/
#define PhaseProtectRestartTimes        (5)
/*偏执电压恢复次数*/
#define IbusOffsetRestartTimes          (5)

/*********PFC保护相关************/
#define PFCIOffsetRecoverEnable        (1)                        //压机偏执恢复
#define PFCOffsetRecoverTime           (3000)                      // (ms) 恢复时间

/*PFC偏执电压恢复次数和过流恢复总次数*/
#define PFCOffsetRestartTimes         (30)



#endif