大学生
最后登录1970-1-1
在线时间 小时
注册时间2016-1-30
|
(1)将TIM8配置为PWM输出模式,采集卡采集数据可看出波形正常,配置正确。
(2)配置NVIC[code]static void TIMx_NVIC_Config(void){
NVIC_InitTypeDef NVIC_InitStruture;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
NVIC_InitStruture.NVIC_IRQChannel=TIM8_UP_TIM13_IRQn;
NVIC_InitStruture.NVIC_IRQChannelCmd=ENABLE;
NVIC_InitStruture.NVIC_IRQChannelPreemptionPriority=1;
NVIC_InitStruture.NVIC_IRQChannelSubPriority=1;
NVIC_Init(&NVIC_InitStruture);
}[code]
(3)开启TIM8更新中断
[code]
TIM_ClearFlag (PWM_TIM,TIM_FLAG_Update); //清除定时器更新中断标志位
TIM_ITConfig (PWM_TIM,TIM_IT_Update,ENABLE);
[code]
(4)在it.c中TIM8_UP_TIM13_IRQHandler编写TIM8中断函数
[code]
void BSP_PWMx_IRQHandler(void)
{
if(TIM_GetITStatus(BSP_TIMx,TIM_IT_Update)==SET)
{
// TIM_Cmd (PWM_TIM,DISABLE); //使能TIM8
i=i+1;
x=20*i;
if(x>80)
{
i=0;
x=0;
}
TIM_SetCompare1(PWM_TIM,x);
// TIM_Cmd (PWM_TIM,ENABLE); //使能TIM8
TIM_ClearITPendingBit (PWM_TIM,TIM_IT_Update);
}
}
[code]
(5)打算他占空比按照0、20%、40%、60%、80%的规律进行变化,当PWM周期设置为100us及以下时:
TIM_TimeBaseStructure.TIM_Period=100;
TIM_TimeBaseStructure.TIM_Prescaler=1800-1;
采集卡采集到的数据波形占空比变化为20%、20%、40%、40%、40%、60%、80%、80%类似于这样的变化。当PWM周期设置为1ms及以上时,波形就正常了,可以按照0、20%、40%、60%、80%的规律变化。
(6)想咨询一下有人在进行PWM波变占空比时遇到过类似于我这样的问题么?怎么样才可以解决这个问题,谢谢帮助。
|
|