This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] CCS/MSP430FR2476:初始化计数器 A 的代码中存在错误

Guru**** 2390755 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/921692/ccs-msp430fr2476-bug-in-code-to-init-counter-a

器件型号:MSP430FR2476

工具/软件:Code Composer Studio

当我尝试将 TimerA 设置为向上计数模式时、它会将其设置为向上/向下计数。  MC_UP 定义为常数0x0010、但在0x0030中为 ORS。 这可以通过单步执行以下代码来看出:

//
//             初始化 TimerA
//
空 initTimer_A (空)

   // Timer0_A 配置为连续模式,向上计数。
   // 到达 CCR0时溢出和中断。
   对于 8MHz SMCLK、// CCR0 = 8000提供1ms 中断。

   TA0CCTL0 |= CCIE;                            //启用 TACCR0中断
   TA0CCR0 = INTERRUPT_COUNT_MAX;               //将8MHz 除以8000
   TA0CTL = 0;
   TA0CTL |= tassel_SMCLK | MC__Continous;    // SMCLK,连续模式
   TA0CTL |= MC__UP;                           //编译器错误确实将其设置为向上/向下
   TA0CTL = 0x211;                              //将其从0x231更正为0x211
   _bis_SR_register (LPM0_bits | GIE);          //输入 LPM0、带中断

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    >TA0CTL  |= tassel_SMCLK | MC__Continuous;    // SMCLK,连续模式
    >TA0CTL  |= MC__UP;                           //编译器错误会将其设置为向上/向下

    此代码将 MC 域设置为0x020 | 0x010 (连续|向上)、即0x030 =向上/向下。

    根据其读数、我怀疑第一行的用意是:

    >TA0CTL |= tassel_SMCLK;    // SMCLK,保持 MC=0 (已停止)