MSP430 - 如何将定时器A1中断用于不同目的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MSP430 - 如何将定时器A1中断用于不同目的?相关的知识,希望对你有一定的参考价值。

是否可以将定时器A1中断用于不同用途的不同用途?

我收到错误消息,我宣布计时器A1中断,我有重复声明。我的代码具有使用定时器A1的低功率中断,以及应该使用定时器A1中断的RC充电和放电电路。

是否可能有重复的定时器中断以及如何完成?

答案

您可以为定时器A1设置多个捕获和比较寄存器(CCR)。每个应用程序都可以使用它自己然后在处理程序中通过查看TAIV解复用。来自TI的msp430f1611示例代码:

void __attribute__ ((interrupt(TIMERA1_VECTOR))) Timer_A1 (void)
{
  switch( TAIV )
  {
  case  2: CCR1 += 1000;                    // Add Offset to CCR1
           break;
  case  4: CCR2 += 10000;                   // Add Offset to CCR2
           break;
  case 10: P1OUT ^= 0x01;                   // Timer_A1 overflow
           break;
 }
}

该MCU有三个寄存器:CCR0,CCR1和CCR2。定时器A1中断处理程序为CCR1,CCR2和定时器计数器溢出(TAR)调用。 CCR0由单独的中断处理程序(A0)处理。

不要试图在运行时覆盖中断向量 - 这是一个糟糕的主意。在msp430上,它还需要重新编程(部分)闪存。相反,编写一个处理程序并区分其中的特定于应用程序的逻辑。

以上是关于MSP430 - 如何将定时器A1中断用于不同目的?的主要内容,如果未能解决你的问题,请参考以下文章

MSP430-GRACE 实战:定时器中断

MSP430的I/O中断和看门狗定时器能同时使用吗?

在高编译器优化模式下在msp430中定时使用

MSP430F5529双芯片串口通信方案

MSP430 停止响应高频查询

msp430无工程时如何固化程序