下面程序采用增计数模式,那么增加到TA0CCR0 就会产生TA0CCR0 中断,然后计数器自动清零,重新计数
【注意】:这是一个单源中断
#include<msp430f6638.h>
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
P4DIR |= BIT1; // P4.1 output
TA0CCTL0 = CCIE; // 开启TA0CCR0 的中断
TA0CCR0 = 50000;
TA0CTL = TASSEL__SMCLK + MC__UP + TACLR; // 时钟源选SMCLK,增计数模式,清零计数器
_BIS_SR(LPM0_bits + GIE); // Enter LPM0, enable interrupts
_NOP(); // For debugger
}
// Timer_A0 ISR
#pragma vector=TIMER0_A0_VECTOR
__interrupt void TIMER0_A0_ISR(void) // 注意这个中断向量
{
P4OUT
}