工具/软件:Code Composer Studio
您好,
我是微控制器编程的新手,我的问题与中断有关。 我在端口1的不同端口上创建了两个中断,我的代码如下。
我的问题是,如果已执行另一个中断,我不想运行该中断。 我使用变量执行此操作,方法是在 第一个IF语句中提供“int variable =(variable +1);”。
如何使用正确的语法,以便在未满足变量的情况下不能输入第二个中断?
谢谢!
#include <MSP40.0.h>#define motor BIT0
#define LED_M BIT6.
#define bowl BIT3.
#define container BIT4.
#define LED_C BIT7
内部主(无效)
{
WDTCTL = WDTPW + WDTHOLD;//停止看门狗计时器
P1DIR ||(马达+ LED_M + LED_C);//将WFP 1.0 设置为输出方向
P1OUT &=~(马达+ LED_M);//将WFP 1.0 设置为0 (LED熄灭)
P1IE ||(碗+容器);// WFP 1.3 和1.4 中断已启用
P1IFG &=~(容器+碗);//WFP 1.4 & WFP 1.3 IFG已清除
__enable_interrupt ();//启用所有中断
const int变量=0;
对于(;;)
{
}
}
//端口1中断服务例程
#pragma vector=Port1_vector
__interrupt void Port_1_ISR(void)
{
IF (P1IFG和BIT4)
//容器
{
P1OUT ^=(LED_C);
INT变量=(变量+ 1);
P1IFG &=~容器;//已清除WFP 1.3 IFG
p1IES ^= container;//切换中断边缘,当WFP 1.3 从HitoLow和LowtoHigh转到时,将调用中断向量
}
IF (P1IFG & BIT3 & variable==0)
//碗
{
P1OUT ^=(电机+ LED_M);// WFP 1.0 和WFP 1.6 切换
P1IFG &=~碗;// WFP 1.3 IFG已清除
p1IES ^= bow;//切换中断边缘,当WFP 1.3 从HitoLow和LowtoHigh转过来时,将调用中断向量
}}