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.

使用ACLK的Timer定时不正确

Other Parts Discussed in Thread: MSP430FR5989

我们公司有个产品在进入低功耗后使用基于ACLK的Timer定时来唤醒, 目前发现在1分钟的定时唤醒中(其中会每100ms起来一次,查看1分钟是否到),有些产品可以准时起来,有些会延时3-6秒起来.

请问ACLK为什么频率不正确, 有方法可以校准这个频率吗?

注: 我们用的MCU为msp430fr5989.

测试代码:

CSCTL2 = SELA__VLOCLK | SELS__DCOCLK | SELM__DCOCLK ;
CSCTL3 = DIVA__1 | DIVS__8 | DIVM__1;;//SMCLK 8分频,ACLK,MCLK时钟均不分频

TA1CTL |= TASSEL__ACLK; //定时器TA1的时钟源为ACLK
TA1CCTL0 |= CCIE;//使能定时器TA1CCR0.CCIFG中断

TA1R = 0;
TA1CCR0 = 1*940; //设置定时器TA1计数值, 定时器频率为9.4khz, 设为100ms的周期
TA1CTL |= MC_1; //启动增计时
TA1CCTL0 |= CCIE; //使能定时器TA0CCR0.CCIFG中断

datasheet上ACLK的描述: