工具/软件: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、带中断
}