工具/软件: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)
#pragma vector=port2_vector
__interrupt void Port_2 (void)
{
// WFP 1.0 =切换LED 1
P1OUT ^= BIT0;
//清除WFP 2.6 IFG
P2IFG &=~BIT6;
}
我对编程很陌生,我刚刚开始了解中断。
我的任务是修改以上代码,使开关1 (WFP 2.6)被释放时,LED 1 (WFP 1.0)打开,按下时,它将关闭。
目前,每次按下开关1时,LED2都会持续闪烁,LED1会打开和关闭。
有人能向我指出正确的方向吗?
我补充说
同时(1)
{
//如果S1被释放
IF (P2IN和BIT6)
{
//打开LED
P1OUT |= BIT0;
}
否则
{
//关闭LED
P1OUT &=~BIT0;
}
}
我不知道如何将其集成到代码中。 我只是把它放进去,现在LED1在它被释放时打开,在它被按下时关闭(按它应该的那样),但当我按下SW1时,LED2只是关闭。
我对此非常陌生,因此非常感谢任何帮助。