请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
部件号:MSP430G2553 工具/软件:TI C/C++编译器
大家好,
我有MSP430G2553 LaunchPad,我遇到中断问题。
我想写一个简单的程序,它可以使LED以~12.5 Hz频率闪烁,并通过按钮来启用/禁用闪烁。 这两种功能都将使用中断。 我写了简单的代码,但它在输入TIMER0_A1_Vector后永远不会消失。 请帮帮我。 提前感谢,我们提供了代码:
#include <msp430g2553.h>
void main (void)
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗计时器
P1DIR |= BIT0 + BIT6; // WFP 1.1 + WFP 1.6 二极管
P1DIR &=~BIT3; // WFP 1.3 开关
P1OUT || BIT0 + BIT6; //二极管开启
P1REN |= BIT3; // WFP 1.3 上的电阻器
P1OUT || BIT3; //向上拉
P1IE |= BIT3; // WFP 1.3 interrupt enable (启用WFP中断)
P1IES || BIT3; //高边到低边
P1IFG &=~BIT3; //中断标志清除
//定时器A
TACTL = Tassel_2 + MC_1 + ID_3 + TAIE; // TIE激活中断,Tassel_2 SMCLK - 1MHz,MC_1 UP模式,ID_3 1MHz/8 = 125kHz
//计时器0
TA0CCR0 = 5万; // 125kHz / 5万 = 2.5Hz -> 400ms
TA0CCTL0 = CCIE; // TA0CCR0中断已激活
_BIS_SR(LPM0_bits + GIE); //使用中断启用进入LPM0
}
#pragma vector=TIMER0_A0_vector //计时器中断
__interrupt void Timer_a (void)
{
P1OUT ^= BIT0 + BIT6; //切换二极管
}
#pragma vector=TIMER0_A1_vector // Timer
_中断void Timer_BAA_0
^ //切换二极管
}
#pragma vector=Port1_vector //交换机中断
__interrupt void Port_1(void){
CCTL0 ^= CCIE; //启用切换CCTL0中断
P1OUT ^= BIT0 + BIT6;
P1IFG &=~BIT3; //中断标志清除
}