#include "msp430.h"
int main( void )
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= 0x01;//设置P1.0口为输出
P1IE |= 0x80;//使能P1.7中断
P1IES |= 0x80;//P1.7口下降沿触发中断
P1IFG &= ~0x80;//中断标志位清零
_EINT();//开总中断
while(1)
{
;
}
}
#pragma vector = PORT1_VECTOR
__interrupt void PORT_1(void)
{
P1OUT ^= 0x01;//P1.0状态翻转
P1IFG &= ~0x80;//中断标志位清零
}
简单的测试代码,大家看看有什么问题啊,按理说应该是按一下LED翻转一次的,但是按键隔好长时间才执行,求指导!
添加
P1OUT = BIT7; // P1.7 set, else reset
P1REN |= BIT7;
试试
回复 沙发 qinkaiabc 的帖子
OK,这样其实我之前试过,是好的,但是P1.7默认是有初始化值的,P1OUT = BIT7是否有必要?另外这个加上拉电阻目的是什么呢?
部上拉电阻使能使用中断时,使能内部的上拉电阻这样当该脚悬空是,电平不会跳变,防止悬空时电平跳变不停的触发中断