1127 lines
29 KiB
C
1127 lines
29 KiB
C
|
|
|||
|
/**
|
|||
|
* @file: pwm_manage.c
|
|||
|
* @brief:
|
|||
|
* @author: mingyea
|
|||
|
* @version: V1.0.0
|
|||
|
* @date: 2016-03-22
|
|||
|
* @history:
|
|||
|
* 1.
|
|||
|
* author:
|
|||
|
* version:
|
|||
|
* date:
|
|||
|
*/
|
|||
|
|
|||
|
|
|||
|
|
|||
|
#include "pwm_manage.h"
|
|||
|
#include "tim.h"
|
|||
|
#include "gpio.h"
|
|||
|
|
|||
|
void pwm_manage_channel_init(u8 base_id, u8 channel_id);
|
|||
|
void pwm_manage_channel_deinit(u8 base_id, u8 channel_id);
|
|||
|
|
|||
|
#if 0
|
|||
|
//此数组可配置--表示把哪个通道,用做pwm,1使能 0不使能
|
|||
|
const u8 g_pwm_array_channel_en_tab[PWM_PYH_TOTAL_CHANNEL] =
|
|||
|
{
|
|||
|
{PHY_PWM_CHANNEL_ATM_CH1_EN}, //ATM CH1
|
|||
|
{PHY_PWM_CHANNEL_ATM_CH2_EN}, //ATM_CH2
|
|||
|
{PHY_PWM_CHANNEL_ATM_CH3_EN}, //ATM_CH3
|
|||
|
{PHY_PWM_CHANNEL_ATM_CH4_EN}, //ATM_CH4
|
|||
|
{PHY_PWM_CHANNEL_GPTM0_CH1_EN}, //GPTM0_CH1
|
|||
|
{PHY_PWM_CHANNEL_GPTM0_CH2_EN}, //GPTM0_CH2
|
|||
|
{PHY_PWM_CHANNEL_GPTM0_CH3_EN}, //GPTM0_CH3
|
|||
|
{PHY_PWM_CHANNEL_GPTM0_CH4_EN}, //GPTM0_CH4
|
|||
|
{PHY_PWM_CHANNEL_GPTM1_CH1_EN}, //GPTM1_CH1
|
|||
|
{PHY_PWM_CHANNEL_GPTM1_CH2_EN}, //GPTM1_CH2
|
|||
|
{PHY_PWM_CHANNEL_GPTM1_CH3_EN}, //GPTM1_CH3
|
|||
|
{PHY_PWM_CHANNEL_GPTM1_CH4_EN}, //GPTM1_CH4
|
|||
|
};
|
|||
|
#endif
|
|||
|
|
|||
|
//此数组不改动
|
|||
|
const pwm_cfg_tab_s g_pwm_array_channel_tab[PWM_PYH_TOTAL_CHANNEL] =
|
|||
|
{
|
|||
|
{PWM_BASE_ID_ATM,1}, //ATM CH1
|
|||
|
{PWM_BASE_ID_ATM,2}, //ATM_CH2
|
|||
|
{PWM_BASE_ID_ATM,3}, //ATM_CH3
|
|||
|
{PWM_BASE_ID_ATM,4}, //ATM_CH4
|
|||
|
{PWM_BASE_ID_GPTM0,1}, //GPTM0_CH1
|
|||
|
{PWM_BASE_ID_GPTM0,2}, //GPTM0_CH2
|
|||
|
{PWM_BASE_ID_GPTM0,3}, //GPTM0_CH3
|
|||
|
{PWM_BASE_ID_GPTM0,4}, //GPTM0_CH4
|
|||
|
{PWM_BASE_ID_GPTM1,1}, //GPTM1_CH1
|
|||
|
{PWM_BASE_ID_GPTM1,2}, //GPTM1_CH2
|
|||
|
{PWM_BASE_ID_GPTM1,3}, //GPTM1_CH3
|
|||
|
{PWM_BASE_ID_GPTM1,4}, //GPTM1_CH4
|
|||
|
{PWM_BASE_ID_GPTM2,1}, //GPTM2_CH1
|
|||
|
{PWM_BASE_ID_GPTM2,2}, //GPTM2_CH2
|
|||
|
{PWM_BASE_ID_GPTM2,3}, //GPTM2_CH3
|
|||
|
{PWM_BASE_ID_GPTM2,4}, //GPTM2_CH4
|
|||
|
{PWM_BASE_ID_LPT32,1}, //LPT32_CH1
|
|||
|
{PWM_BASE_ID_LPT32,2}, //LPT32_CH2
|
|||
|
{PWM_BASE_ID_LPT32,3}, //LPT32_CH3
|
|||
|
{PWM_BASE_ID_LPT32,4}, //LPT32_CH4
|
|||
|
};
|
|||
|
|
|||
|
u8 g_lpt32_ch_flag[4] ={0u};
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void pwm_manage_atm_init(void)
|
|||
|
{
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_1, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch1_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_2, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch2_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_3, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch3_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_4, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch4_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u) || (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u) || (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u) || (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_BDTR_Init(ATIM, (FL_ATIM_BDTR_InitTypeDef*)&g_atimer0_bdtr_config);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void pwm_manage_gptm0_init(void)
|
|||
|
{
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch1_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch2_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch3_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch4_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void pwm_manage_gptm1_init(void)
|
|||
|
{
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch1_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch2_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch3_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch4_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void pwm_manage_gptm2_init(void)
|
|||
|
{
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch1_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch2_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch3_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch4_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void pwm_manage_lpt32_init(void)
|
|||
|
{
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH1_EN !=0u)
|
|||
|
//FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch1_cfg);
|
|||
|
//FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH2_EN !=0u)
|
|||
|
//FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch2_cfg);
|
|||
|
//FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
//FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch3_cfg);
|
|||
|
//FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
//FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch4_cfg);
|
|||
|
//FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* @brief 初始化
|
|||
|
* @retval none
|
|||
|
*/
|
|||
|
void pwm_manage_init(void)
|
|||
|
{
|
|||
|
#if 0
|
|||
|
u8 i;
|
|||
|
for(i = 0u; i < PWM_PYH_TOTAL_CHANNEL; i++)
|
|||
|
{
|
|||
|
if(g_pwm_array_channel_en_tab[i]!=0u)
|
|||
|
{
|
|||
|
pwm_manage_channel_init(g_pwm_array_channel_tab[i].base,g_pwm_array_channel_tab[i].channel);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u) || (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u) || (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u) || (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_BDTR_Init(ATIM, (FL_ATIM_BDTR_InitTypeDef*)&g_atimer0_bdtr_config);
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
|
|||
|
//测试
|
|||
|
#if 0
|
|||
|
#ifdef PWM_LOGIC_CHANNEL_LED_DEBUG
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_ILL].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_ILL].channel,500u);
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_IND].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_IND].channel,500u);
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_LF].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_LF].channel,500u);
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_RF].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_RF].channel,500u);
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_LR].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_LR].channel,500u);
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_RR].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_RED_RR].channel,500u);
|
|||
|
pwm_set_duty(g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_BLUE_ALL].base,g_pwm_array_channel_tab[PWM_LOGIC_CHANNEL_LED_BLUE_ALL].channel,500u);
|
|||
|
#endif
|
|||
|
//#else
|
|||
|
pwm_set_duty(PWM_BASE_ID_ATM,1,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_ATM,2,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_ATM,3,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_ATM,4,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_GPTM0,1,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_GPTM0,2,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_GPTM1,2,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_GPTM1,3,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_GPTM1,4,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_GPTM2,1,250u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_LPT32,1,0u);
|
|||
|
pwm_set_duty(PWM_BASE_ID_LPT32,2,250u);
|
|||
|
|
|||
|
#endif
|
|||
|
//
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void pwm_manage_deinit(void)
|
|||
|
{
|
|||
|
FL_LPTIM32_OC_InitTypeDef timOCInit;
|
|||
|
|
|||
|
#if 0
|
|||
|
u8 i;
|
|||
|
for(i = 0u; i < PWM_PYH_TOTAL_CHANNEL; i++)
|
|||
|
{
|
|||
|
if(g_pwm_array_channel_en_tab[i]!=0u)
|
|||
|
{
|
|||
|
pwm_manage_channel_deinit(g_pwm_array_channel_tab[i].base,g_pwm_array_channel_tab[i].channel);
|
|||
|
}
|
|||
|
}
|
|||
|
#else
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_1);
|
|||
|
FL_ATIM_WriteCompareCH1(ATIM,0u);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
FL_ATIM_WriteCompareCH2(ATIM,0u);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_3);
|
|||
|
FL_ATIM_WriteCompareCH3(ATIM,0u);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_4);
|
|||
|
FL_ATIM_WriteCompareCH4(ATIM,0u);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH1_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch1_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_1, &timOCInit);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH2_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch2_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_2, &timOCInit);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch3_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_3, &timOCInit);
|
|||
|
#endif
|
|||
|
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH4_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch4_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_4, &timOCInit);
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
#endif
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void pwm_manage_channel_init(u8 base_id, u8 channel_id)
|
|||
|
{
|
|||
|
//atm
|
|||
|
if(base_id == PWM_BASE_ID_ATM)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_1, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch1_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_2, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch2_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_3, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch3_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_OC_Init(ATIM, FL_ATIM_CHANNEL_4, (FL_ATIM_OC_InitTypeDef*)&g_atmer0_ch4_InitStructer);
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim0
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM0)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch1_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch2_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch3_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM0, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim_ch4_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim1
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM1)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch1_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch2_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch3_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM1, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim1_ch4_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim2
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM2)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_1, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch1_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_2, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch2_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_3, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch3_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_Init(GPTIM2, FL_GPTIM_CHANNEL_4, (FL_GPTIM_OC_InitTypeDef*)&g_gptim2_ch4_cfg);
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//lpt32
|
|||
|
else if(base_id == PWM_BASE_ID_LPT32)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH1_EN !=0u)
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH2_EN !=0u)
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH4_EN !=0u)
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
void pwm_manage_channel_deinit(u8 base_id, u8 channel_id)
|
|||
|
{
|
|||
|
FL_LPTIM32_OC_InitTypeDef timOCInit;
|
|||
|
//atm
|
|||
|
if(base_id == PWM_BASE_ID_ATM)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_1);
|
|||
|
FL_ATIM_WriteCompareCH1(ATIM,0u);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
FL_ATIM_WriteCompareCH2(ATIM,0u);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_3);
|
|||
|
FL_ATIM_WriteCompareCH3(ATIM,0u);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_4);
|
|||
|
FL_ATIM_WriteCompareCH4(ATIM,0u);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim0
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM0)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim1
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM1)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim2
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM2)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//lpt32
|
|||
|
else if(base_id == PWM_BASE_ID_LPT32)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH1_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch1_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_1, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH2_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch2_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_2, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch3_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_3, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH4_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch4_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_4, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void pwm_set_duty(u8 base_id, u8 channel_id,u16 duty)
|
|||
|
{
|
|||
|
FL_LPTIM32_OC_InitTypeDef timOCInit;
|
|||
|
u16 l_duty;
|
|||
|
//atm
|
|||
|
if(base_id == PWM_BASE_ID_ATM)
|
|||
|
{
|
|||
|
l_duty = SET_ATM1_PWM_DUTY_PERCENT(duty);
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u)
|
|||
|
FL_ATIM_OC_EnableChannel(ATIM,FL_ATIM_CHANNEL_1);
|
|||
|
FL_ATIM_WriteCompareCH1(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u)
|
|||
|
FL_ATIM_OC_EnableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
FL_ATIM_WriteCompareCH2(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u)
|
|||
|
FL_ATIM_OC_EnableChannel(ATIM,FL_ATIM_CHANNEL_3);
|
|||
|
FL_ATIM_WriteCompareCH3(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_OC_EnableChannel(ATIM,FL_ATIM_CHANNEL_4);
|
|||
|
FL_ATIM_WriteCompareCH4(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM0)
|
|||
|
{
|
|||
|
l_duty = SET_GPTIM0_PWM_DUTY_PERCENT(duty);
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH1_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH1(GPTIM0,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM0, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH2_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH2(GPTIM0,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM0, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH3_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH3(GPTIM0,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM0, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH4_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH4(GPTIM0,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM0, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM1)
|
|||
|
{
|
|||
|
l_duty = SET_GPTIM1_PWM_DUTY_PERCENT(duty);
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH1_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH1(GPTIM1,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM1, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH2_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH2(GPTIM1,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM1, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH3_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH3(GPTIM1,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM1, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH4_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH4(GPTIM1,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM1, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM2)
|
|||
|
{
|
|||
|
l_duty = SET_GPTIM2_PWM_DUTY_PERCENT(duty);
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH1_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH1(GPTIM2,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH2_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH2(GPTIM2,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH3_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH3(GPTIM2,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH4_EN !=0u)
|
|||
|
FL_GPTIM_WriteCompareCH4(GPTIM2,l_duty);
|
|||
|
FL_GPTIM_OC_EnableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//lpt32
|
|||
|
else if(base_id == PWM_BASE_ID_LPT32)
|
|||
|
{
|
|||
|
l_duty = SET_LPT32_PWM_DUTY_PERCENT(duty);
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH1_EN !=0u)
|
|||
|
if(l_duty==0u)
|
|||
|
{
|
|||
|
lpt32_ch1_set_gpio();
|
|||
|
g_lpt32_ch_flag[0]=0u;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(g_lpt32_ch_flag[0]!=1u)
|
|||
|
{
|
|||
|
lpt32_ch1_set_pwm();
|
|||
|
g_lpt32_ch_flag[0]=1u;
|
|||
|
}
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch1_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = l_duty;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_1, &timOCInit);
|
|||
|
}
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH2_EN !=0u)
|
|||
|
if(l_duty==0u)
|
|||
|
{
|
|||
|
lpt32_ch1_set_gpio();
|
|||
|
g_lpt32_ch_flag[1]=0u;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
if(g_lpt32_ch_flag[1]!=1u)
|
|||
|
{
|
|||
|
lpt32_ch1_set_pwm();
|
|||
|
g_lpt32_ch_flag[1]=1u;
|
|||
|
}
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch2_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = l_duty;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_2, &timOCInit);
|
|||
|
}
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch3_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = l_duty;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_3, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH4_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch4_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = l_duty;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_4, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//
|
|||
|
}
|
|||
|
//FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
}
|
|||
|
|
|||
|
void pwm_disable(u8 base_id, u8 channel_id)
|
|||
|
{
|
|||
|
FL_LPTIM32_OC_InitTypeDef timOCInit;
|
|||
|
u8 l_duty =0u;
|
|||
|
//atm
|
|||
|
if(base_id == PWM_BASE_ID_ATM)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH1_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_1);
|
|||
|
FL_ATIM_WriteCompareCH1(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH2_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_2);
|
|||
|
FL_ATIM_WriteCompareCH2(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH3_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_3);
|
|||
|
FL_ATIM_WriteCompareCH3(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_ATM_CH4_EN !=0u)
|
|||
|
FL_ATIM_OC_DisableChannel(ATIM,FL_ATIM_CHANNEL_4);
|
|||
|
FL_ATIM_WriteCompareCH4(ATIM,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//gptim
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM0)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_1);
|
|||
|
FL_GPTIM_WriteCompareCH1(GPTIM0,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_2);
|
|||
|
FL_GPTIM_WriteCompareCH2(GPTIM0,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_3);
|
|||
|
FL_GPTIM_WriteCompareCH3(GPTIM0,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM0_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM0, FL_GPTIM_CHANNEL_4);
|
|||
|
FL_GPTIM_WriteCompareCH4(GPTIM0,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM1)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_1);
|
|||
|
FL_GPTIM_WriteCompareCH1(GPTIM1,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_2);
|
|||
|
FL_GPTIM_WriteCompareCH2(GPTIM1,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_3);
|
|||
|
FL_GPTIM_WriteCompareCH3(GPTIM1,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM1_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM1, FL_GPTIM_CHANNEL_4);
|
|||
|
FL_GPTIM_WriteCompareCH4(GPTIM1,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else if(base_id == PWM_BASE_ID_GPTM2)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH1_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_1);
|
|||
|
FL_GPTIM_WriteCompareCH1(GPTIM2,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH2_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_2);
|
|||
|
FL_GPTIM_WriteCompareCH2(GPTIM2,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH3_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_3);
|
|||
|
FL_GPTIM_WriteCompareCH3(GPTIM2,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
#if (PHY_PWM_CHANNEL_GPTM2_CH4_EN !=0u)
|
|||
|
FL_GPTIM_OC_DisableChannel(GPTIM2, FL_GPTIM_CHANNEL_4);
|
|||
|
FL_GPTIM_WriteCompareCH4(GPTIM2,l_duty);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
//lpt32
|
|||
|
else if(base_id == PWM_BASE_ID_LPT32)
|
|||
|
{
|
|||
|
switch(channel_id)
|
|||
|
{
|
|||
|
case 1u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH1_EN !=0u)
|
|||
|
#if 0
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch1_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_1, &timOCInit);
|
|||
|
#else
|
|||
|
g_lpt32_ch_flag[0]=0u;
|
|||
|
lpt32_ch1_set_gpio();
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 2u:
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH2_EN !=0u)
|
|||
|
#if 0
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch2_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_2, &timOCInit);
|
|||
|
#else
|
|||
|
g_lpt32_ch_flag[1]=0u;
|
|||
|
lpt32_ch2_set_gpio();
|
|||
|
#endif
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 3u:
|
|||
|
g_lpt32_ch_flag[2]=0u;
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH3_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch3_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_3, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
case 4u:
|
|||
|
g_lpt32_ch_flag[3]=0u;
|
|||
|
#if (PHY_PWM_CHANNEL_LPT32_CH4_EN !=0u)
|
|||
|
timOCInit.OCPolarity = g_lpt32_ch4_cfg.OCPolarity;
|
|||
|
timOCInit.compareValue = 0u;
|
|||
|
FL_LPTIM32_OC_Init(LPTIM32, FL_LPTIM32_CHANNEL_4, &timOCInit);
|
|||
|
#endif
|
|||
|
break;
|
|||
|
default:
|
|||
|
//code
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
//
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
void pwm_enable(u8 base_id, u8 channel_id)
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|