我用MSP430G2121单片机编写旋转编码开关的程序,编码开关为EC11(30点位15脉冲的)。我用下降沿触发中断做的。我设置了下降沿触发中断,但是编码开关转了一圈发现有些地方不能进入中断(中断函数开始处设置断点),请问是怎么回事啊?我的程序如下:#include"msp430g2121.h"
void init(void) { WDTCTL = WDTPW + WDTHOLD;//关看门狗 P1DIR|=BIT0;//设置p1.0为输入 P1DIR|=BIT1;//设置p1.1为输入 P1IES|=BIT1;//设置p1.1为下降沿触发中断 P1IFG&=~BIT1; P1IE|=BIT1;//开P1.1中断 _EINT();//打开总中断 }
#pragma vector=PORT1_VECTOR
__interrupt void encode(void)
{ unsigned int satateA; unsigned int satateB; satateA=P1IN&BIT0; satateB=P1IN&BIT1;
if(P1IFG&=BIT1)
{ if(satateA==satateB) //正转 else //反转 }
P1IFG&=~BIT1;
}
void encodeswitch(void) { //正转 //反转 } void main(void) { int(); encodeswitch(); }
|