新手入门
- 积分
- 5
- 金钱
- 5
- 注册时间
- 2019-1-17
- 在线时间
- 1 小时
|
1金钱
rt,最近在学习定时器中断,为了实现互补输出PWM使用了TIM8,老师要求在每次中断修改PWM的占空比,同时中断周期要和PWM周期一致,学长建议使用TIM8同时输出PWM并作为中断定时器。本来使用的TIM3进入中断,编译通过能够正常调节占空比;使用TIM8之后只能输出PWM占空比,但是不能调节占空比,加断点观察发现无法进入中断服务函数,这是为什么呢?
中断配置和中断服务函数配置如下:定时器配置略。
TIM_ITConfig(TIM8,TIM_IT_Update,ENABLE);
NVIC_InitStructure.NVIC_IRQChannel=TIM8_CC_IRQn;
NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x01;
NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x03;
NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&NVIC_InitStructure);
void TIM8_CC_IRQHandler(void)
{
if(TIM_GetITStatus(TIM8,TIM_IT_Update)==SET)
{
if(zhankongbi==2000)
zhankongbi=8000;
else
zhankongbi=2000;
bsp_SetTIMOutPWM(GPIOC, GPIO_Pin_6, TIM8, 1, 10000, zhankongbi);
}
TIM_ClearITPendingBit(TIM8,TIM_IT_Update); //Çå3yÖD¶Ï±ê־λ
}
项目编译通过没有问题,PWM输出正常,就是进不去中断,希望原子哥救命!!
|
|