大家好、
我对 MSP430非常陌生。
我创建了一个小型程序:
int main (空)
{
WDTCTL = WDTPW | WDTHOLD;//停止看门狗计时器
P2OUT = 0x00;
P2DIR |= 0x02;
CCTL0=CCIE;
TACCR0 = 62500;
TACTL=tassel_2| ID_3 |MC_1 |TAIE;
enable_interrupt ();
while (1){
}
返回0;
}
#pragma vector=TIMER0_A0_VECTOR
_interrupt void Timer_A (void){
P2OUT ^= 0x02;
TACTL &=~TAIFG;
}
如果我使用 SMCLK、程序工作正常、但当我想使用 ACLK (Tassel_1)时、程序不工作。 我发现可能需要更改为 ACK= VCO、因此我放置以下内容:
BCSCTL3 |= LFXT1S_2;
输入后、它开始工作几秒钟、但此后它通过"ISR 陷阱"跳转到无限状态。 我通过以下方式解决了这个问题:
IFG1 &=~OFIFG;
但经过几秒钟后、它仍然会进入无限状态。 很少见的情况是、如果我在中断中放置一个断点、它在我单击以运行时一直工作正常。 这是否是时间问题?
谢谢、此致、
维克多