初级会员 
  
	- 积分
 - 115
 
        - 金钱
 - 115 
 
       - 注册时间
 - 2015-9-27
 
      - 在线时间
 - 23 小时
 
 
 
 | 
 
5金钱 
如题,用了四个霍尔传感器,通过一个四输入与门连接到了单片机的中断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; 但是。。。。。。还是一样没有解决 |   
 
 
 
 
 
 |