这段代码的意思是在单片机进入低功耗模式之前先延时1.5秒,然后进入低功耗3,定时0.228秒之后中断唤醒退出低功耗模式3,可是这个时钟对不上吧,SEL_1是辅助时钟,辅助时钟只能是VLO或者LTXF1CLK,没懂1.5秒对应计数2000,不知道我理解是否有错,帮忙看下,谢谢
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.
这段代码的意思是在单片机进入低功耗模式之前先延时1.5秒,然后进入低功耗3,定时0.228秒之后中断唤醒退出低功耗模式3,可是这个时钟对不上吧,SEL_1是辅助时钟,辅助时钟只能是VLO或者LTXF1CLK,没懂1.5秒对应计数2000,不知道我理解是否有错,帮忙看下,谢谢
/*--------------------------------------------------------
定时器A定时32s
--------------------------------------------------------*/
TACCTL0 = CCIE;// TACCR0 中断使能
TACCR0 = 2000;//定时时间为1.5s
TACTL = TASSEL_1 + MC_3+ID_3;//定时器时钟8分频,采用增减计数模式。
__bis_SR_register(LPM3_bits + GIE);//进入低功耗模式3.
TACCR0 = 1917;//定时时间为0.936s
TACTL = TASSEL_1 + MC_3+ID_3;//定时器时钟8分频,采用增减计数模式。
是MSP430F2274单片机 ,我想问定时器选择ACLK ,如果没有配置BCSCLK是不是就是默认配置1Mhz呢 我觉得这个时钟对不上
定时器A软件里没定义 就写了SEL-1,定时器B选的32K,定时器A和定时器B分别配置不同的时钟源
user6333565 说:TACTL = TASSEL_1 + MC_3+ID_3;//定时器时钟8分频,采用增减计数模式。
这里是使用的32K的ACLK时钟,8分频,增减计数模式
该模式下计数器先增计数到TACCR0,然后减计数到0,周期是TACCR0的2倍
要定时t,32K的时钟,8分频,ACLK为32/8Khz,那么依据公式可以写 TACCR0=t/((1/32/8Khz))
是的,他这个计算也是有问题的。代码看起来也有点乱
user6333565 说:同时我也想问下,进入LPM3模式之后,单片机应该停止运行,__bis_SR_register(LPM3_bits + GIE);//进入低功耗模式3.
该语句是进入LPM3并使能中断。可以使用对应的中断来唤醒CPU
下面这个写法是有问题的,如您所说
TACTL = TASSEL_1 + MC_3+ID_3;//定时器时钟8分频,采用增减计数模式。
__bis_SR_register(LPM3_bits + GIE);//进入低功耗模式3.
TACCR0 = 1917;//定时时间为0.936s
TACTL = TASSEL_1 + MC_3+ID_3;//定时器时钟8分频,采用增减计数模式