
P13的中断设置问题,如下:
在void Key_init(void)中的第一句,
P1DIR |= BIT3; //打开上拉,电路板上没有上拉电阻,触发边沿是从高电平到低电平
这里是把IO直接置低阻,而非打开上拉。作为按键输入口,这样设置是不符合阻抗匹配的,严重时会引起IO口的损坏。
正确设置如下:
void Key_init(void)
{
P1REN |= BIT3; // 使能P13端口电阻
P1OUT |= BIT3; // 设置P13端口电阻为上拉(如果该位置低,则设置成下拉电路)
P1IES |= BIT3; //选择触发边沿,下降沿触发
P1IE |= BIT3; //打开P13的中断
P1IFG &= 0x00;
}
其实不建议你这样做,因为MSP430的内部上拉下拉电阻都非常大,阻抗输入很高,只适合无距离的低速信号传递,不然容易引起干扰。
简单个一个例子,如果你用内部电阻作为上拉,并且你的按键是通过引线连接到 *** 作面板上,则会出现误动作,当有干扰源在附近时,按键的连接线会作为天线不断干扰IO,所以建议设计一个可靠的外部上拉电阻。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)