第三课时讲解的是Timer,与以往430系列的TimerA模块基本没什么差别,需要注意的是
TACCR0是一个独立的中断源,对于的中断服务函数是TIMERA0_VECTOR
TACCR1\TACCR2\TA是共用一个中断源,对于的中断标志在TAIV寄存器中,对于的中断服务函数是TIMERA1_VECTOR,需要在中断服务函数里判断是哪个触发源。具体方式如下:
#pragma vector = TIMERA1_VECTOR
__interrupt void T IMERA1_ISR(void)
{
switch(__even_in_range(TAIV,10))
{
case 2 : // TACCR1 CCIFG
P1OUT ^= 0x04 ;break;
case 4 : // TACCR2 CCIFG
P1OUT ^= 0x02 ;break;
case 10 : // TAIFG
P1OUT ^= 0x01 ;break;
}
}