发 帖  
原厂入驻New
张飞60小时讲透半桥串联谐振软开关电源设计,立即学习!
四路电机测速计数的变量不加1
191 电机 传感器
分享
如题,用了四个霍尔传感器,通过一个四输入与门连接到了单片机的中断P32,同时四个霍尔传感器又连接了P0-P11四个IO,当霍尔传感器检测到强磁体,触发中断,在中断里判断是哪一路电机,对应的计数变量的值加一,中断是下降沿触发,但是现在用手转到一个轮子,当检测到强磁体后,计数的变量加2到加4不等,就是不加1.求大神指导,或者有其他的方案教教我。中断初始化和中断函数如下
void SysInit(void)
{
    EA = 1;
    IT0 = 1;
    EX0 = 1;
}
void Exter0(void) interrupt 0
{
    switch (P1 & 0x0f)
    {
        case 0x00 : a++;
                         b++;
                         c++;
                         d++;
                         break;
          case 0x01 : a++;
                         b++;
                         c++;
                         break;
          case 0x02 : a++;
                         b++;
                         d++;
                         break;
          case 0x03 : a++;
                         b++;
                         break;
          case 0x04 : a++;
                         c++;
                         d++;
                         break;
          case 0x05 : a++;
                         c++;
                         break;
          case 0x06 : a++;
                         d++;
                         break;
          case 0x07 : a++;
                         break;
          case 0x08 : b++;
                         c++;
                         d++;
                          break;
          case 0x09 : b++;
                         c++;
                         break;
             case 0x0a : b++;
                         d++;
                         break;
          case 0x0b : b++;
                         break;
          case 0x0c : c++;
                         d++;
                         break;
          case 0x0d : c++;
                         break;
          case 0x0e : d++;
                         break;
            default   : break;
         
    }
}
我从百度上搜到下降沿触发的中断,在中断函数运行的过程中,如果中断引脚再次置0,本次中断结束后又会进入一次中断,这样霍尔传感器的输出波形的毛刺可能会导致重复中断,因此我曾试过在中断函数最后加了一句 IE0 = 0; 但是。。。。。。还是一样没有解决
0
2019-5-13 23:23:12   评论 分享淘帖 邀请回答
3个回答
2019-5-14 09:25:33 评论

举报

你的中断函数没有处理好造成这个现象的,你“四个霍尔传感器又连接了P0-P11四个IO”,是那四个?switch (P1 & 0x0f)你判断这个又怎么和四个传感器对应上?
2019-5-14 09:42:37 评论

举报

四个霍尔接四个引脚,假设霍尔有效信号是低电平,那么中断应该是边沿触发方式,而对引脚的判断数值应该是0X0E,0X0D,0X0B,0X07,四个引脚四个状态,并没有你的程序里那么多的状态
2019-5-14 11:25:46 评论

举报

只有小组成员才能发言,加入小组>>

707个成员聚集在这个小组

加入小组

热门话题

创建小组步骤

关闭

站长推荐 上一条 /10 下一条

快速回复 返回顶部 返回列表