本帖最后由 samk 于 2017-10-30 14:16 编辑
extern u16 ccr1;
extern u16 ccr2;
void TIM3_IRQHandler(void) //TIM3ÖD¶Ï
{
if (TIM_GetITStatus(TIM3, TIM_IT_CC1) != RESET) //¼ì2éÖ¸¶¨μÄTIMÖD¶Ï·¢éúóë·ñ:TIM ÖD¶ÏÔ′
{
TIM_ClearITPendingBit(TIM3, TIM_IT_CC1 ); //Çå3yTIMxμÄÖD¶Ï′y′|àíλ:TIM ÖD¶ÏÔ′
if(ccr2==2000)
{
ccr2=2600;
TIM_SetCompare1(TIM3,ccr2);
}
else if(ccr2==2600)
{
ccr2=2000;
TIM_SetCompare1(TIM3,ccr2);
}
}
if (TIM_GetITStatus(TIM3, TIM_IT_CC2) != RESET) //¼ì2éÖ¸¶¨μÄTIMÖD¶Ï·¢éúóë·ñ:TIM ÖD¶ÏÔ′
{
TIM_ClearITPendingBit(TIM3, TIM_IT_CC2 ); //Çå3yTIMxμÄÖD¶Ï′y′|àíλ:TIM ÖD¶ÏÔ′
if(ccr1==200)
{
ccr1=800;
TIM_SetCompare2(TIM3,ccr1);
}
else if(ccr1==800)
{
ccr1=200;
TIM_SetCompare2(TIM3,ccr1);
}
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
你这还有定时器2的TIM_ClearFlag(TIM2, TIM_FLAG_CC1|TIM_FLAG_CC2);
你还是好好在检查下再弄,确保代码没问题再看看中断为啥没进
一周热门 更多>