工具/软件:Code Composer Studio
包括"MSP4S.h"
Void主(void)
{
易失性长整型i=0;
//停止WDT
WDTCTL = WDTPW + WDTHOLD;
//配置输入/输出引脚
//将WFP 1.0 设置为输出端口(用于LED1)
P1SEL = P1SEL &~BIT0;
P1DIR = P1DIR | BIT0;
//将WFP 1.1 设置为输出端口(用于LED2)
P1SEL = P1SEL &~BIT1;
P1DIR = P1DIR | BIT1;
//将WFP 2.6 设置为输入端口(用于SW1)
P2SEL = P2SEL和~BIT6;
P2DIR = P2DIR和~BIT6;
//启用内部拉电阻器并设置为上拉
P2REN = P2REN | BIT6;
P2OUT = P2OUT | BIT6;
//为WFP 1.6 设置中断(SW1)
// WFP 2.6 高/低边缘(下降边缘)
P2IES |= BIT6;
//已清除WFP 2.6 IFG
P2IFG &=~BIT6;
//启用WFP 2.6 中断
P2IE |= BIT6;
//全局启用中断
_EINT();
//带有软件延迟的轮询环路
for (;;) //这等同于while (1)
{
//切换LED 2.
P1OUT ^= 0x02;
//旋转n个周期
对于(i=0;i<3万;i++){;}
}
}
//端口2中断服务例程(ISR)
#prag ma vector=port2_vector
__interrupt void Port_2 (void)
{
// WFP 1.0 =切换LED 1
P1OUT ^= BIT0;
//清除WFP 2.6 IFG
P2IFG &=~BIT6;
}
问题是:
更改以上代码,以便在使用中断释放开关S2 (而不是按下S1)时LED 1切换。 记下您更改的代码(4分)。
是我自己,还是这个问题没有道理? 每次单击开关1时,代码将切换LED 1。 它要求我对开关2执行此操作,这很简单,但它告诉我在松开开关2时切换开关,而不是按下开关2。 这是什么意思? 这是否意味着每次按下按钮时,在我将手指取下然后切换之前什么也不会发生? 如果是,我是否只将P2IES更改为LO/HIGH?