6月2日 周四 晴   MSP430 5438 定时器A TIMER A 新认识

62日 周四 晴    定时器A

 

现在的认识:

MSP430 5438 3个时钟,分别是 TA0TA1 TB

了解了定时器A的用法:

定时器A可以分成几个独立的时间周期。这几个时钟周期共用一个计数器TA1R TA0R

 

在头文件中可以查到:

6月2日 周四 晴   MSP430 5438 定时器A TIMER A 新认识

 

TIMER0 含  TA0CCR0- TA0CCR4 五个

TIMER1 含  TA1CCR0- TA1CCR2 三个 

 

 

TA0CCR0\TA1CCR0 用于控制计数周期,也就是每当TA0R\TA1R 计数到TA0CCR0\TA1CCR0所设定的数值后就会清零。

 

如:

 TA0CCR0 =8000;                             // CCR0必须最大,因为一计数到CCR0即立刻清0,用于   

                                             控制周期 每8000单位时间就触发一次,并TA0R从新 

                                              计数

  TA0CCR1=4000;                             //4000单位时间就触发一次

  TA0CCR2=1000;                             //1000单位时间就触发一次

 

 

 

 

 

 

 

 

/

/ Timer0 A0 interrupt service routine

#pragma vector=TIMER0_A0_VECTOR

__interrupt void Timer_A0 (void)

{

                  

  UART3_SendStr_char("count to CCR0");     //计数到CCR0触发  

   

}

 

 

// Timer_A3 Interrupt Vector (TAIV) handler

#pragma vector=TIMER0_A1_VECTOR

__interrupt void TIMER0_A1_ISR(void)

{

  switch(__even_in_range(TA0IV,14))

  {

    case 0: break;                  

    case 2:  UART3_SendStr_char("count to CCR1");                    //计数至CCR1触发  

            break;

case 4:  UART3_SendStr_char("count to CCR2");                    //计数至CCR2触发 

        break;

    case 6:  break;                         // CCR3 not used

    case 8:  break;                         // CCR4 not used

    case 10: break;                         // CCR5 not used

    case 12: break;                         // Reserved not used

    case 14: break;                        // 溢出触发

            

    default: break;

 }

}