PWM初始化
void Pwm_Init(void)
{
PWM_StructInit PWMParam;
PWM_IOCTRL_ARG arg;
PWMParam.CounterMode = PWM_COUNTER_MODE_DOWN;
PWMParam.OutputType = PWM_OUTPUT_SINGLE_1;//;
PWMParam.DMAReqEnable = PWM_REQ_INTERRUPT_MODE;
PWMParam.FreqDiv = 120000; //120M / 120000 = 1000us
PWMParam.Duty = 20;
PWM_GpioConfig(TIMER5_PWM_A10_A24_B0, 0, PWM_IO_MODE_OUT);
arg.Duty = PWMParam.Duty;
PWM_IOCTRl(TIMER5,OUTPUT_TYPE_UPDATE,&arg);
PWM_Config(TIMER5,&PWMParam);
PWM_Enable(TIMER5);
PWM_GpioConfig(TIMER4_PWM_A1_A9_A23_A28, 3, PWM_IO_MODE_OUT);
PWM_IOCTRl(TIMER4,OUTPUT_TYPE_UPDATE,&arg);
PWM_Config(TIMER4,&PWMParam);
PWM_Enable(TIMER4);
}
设置占空比
void Pwm_DutySet_R(uint8_t Val)
{
PWM_IOCTRL_ARG arg;
arg.Duty = Val;
PWM_IOCTRl(TIMER5, OUTPUT_DUTY_UPDATE, &arg);
//DBG("Duty : %d\n", Val);
}
void Pwm_DutySet_G(uint8_t Val)
{
PWM_IOCTRL_ARG arg;
arg.Duty = Val;
PWM_IOCTRl(TIMER4, OUTPUT_DUTY_UPDATE, &arg);
//DBG("Duty : %d\n", Val);
}