BCSCTL1 = CALBC1_1MHZ; /* Set DCO to1MHz */
DCOCTL = CALDCO_1MHZ;
//延时函数1M为1秒
BCSCTL2 &= ~SELS;//SMCLK的来源来自DCOLCK
/*SMCLK的分频系数置为1*/
BCSCTL2 &= ~(DIVS0 | DIVS1);
TACTL=TASSEL_2+MC1+TACLR+ID_2;//定时器时钟源为SMCLK,up,4分频,清零
CCTL0|=CCIE;//使能比较器中断
CCR0=50000-1;//计数器终值,起初结果是49999
这是我对定时器A的设置,使用了SMCLK时钟来源,SMCLK来源于DCOLK、不分频,所以SMCLK是1Mhz.然后进行4分频,定时器的频率就变成了250khz,我
CCR0设置的是50000,按理说每进入一次中断是0.2s,我检测25次按理说经过了5s,为什么实际时间在6s~7s.
感谢
Susan Yang:
请问您是如何检测时间的?
,
user6605716:
我在代码内设置每隔10s向串口发送一次数据,我使用的串口调试助手右下角有实时时间,我观察了两次发送数据的间隔,差距为11~12。
,
Susan Yang:
若是可以的话,能否给出完整代码?我明天拿开发板测试一下
,
user6605716:
可以,请等我回去发给您
,
user6605716:
fine.rar
,
Susan Yang:
该压缩包内并没有发现您所说的代码或者工程。是否上传有误。
另外建议您不要使用串口调试助手右下角的实时时间,因为可能会牵扯到串口通信,会有一些偏差
请参考我之前分享的方法来测试一下,谢谢
e2echina.ti.com/…/200001