中级会员
 
- 积分
- 270
- 金钱
- 270
- 注册时间
- 2019-9-1
- 在线时间
- 61 小时
|
这是一个中断程序,要求就是,中断超过3次以上执行if里面的语句,里面的biaozhi1,每中断一次加1,超过3次,执行if里面的语句,现在的问题是,中断一次就执行了if语句,更怪的的是,无论biaozhi1是大于3,小于3,还是等于3,if里面的语句都执行,真是搞不懂了,哪位大神给看看,哪里出了问题,这个中断里面,一共有三个这样的程序,其他两段都正常,唯独这一段不行
void EXTI9_5_IRQHandler(void)
{
//上行传感器中断
if((EXTI_GetITStatus(EXTI_Line9) != RESET)&&(mark==1))
{
TIM_Cmd(TIM2, ENABLE); //开定时器2//开定时器
biaozhi1++;
// delay_ms(20);//消抖
if(biaozhi1>3)
{
youxianchu=!youxianchu;
TIM_Cmd(TIM2, DISABLE); //关闭定时器2,取消误触发
TIM_SetCounter(TIM2, 0);//定时器2清零
TIM_SetCounter(TIM3, 0);//定时器3清零
TIM_Cmd(TIM3, ENABLE); //使能TIM3 开定时器3.延时3分钟
key=2;
}
EXTI_ClearITPendingBit(EXTI_Line9); //清除EXTI9线路挂起位
}
else EXTI_ClearITPendingBit(EXTI_Line9); //清除EXTI9线路挂起
|
|