比如下面这段代码:
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; //停止看门狗定时器
P1DIR |= 0x01; // 设P1.0为输出
//TA1CTL = RT1SSEL_0 + MC_2 + TAIE; // ACLK, 定时器A计数模式,且开中断功能
TA1CTL=TASSEL_2+ID_3+MC_1; //SMCLK(8KHZ). 8分频。 UP to CCR0 1Us
TA0CCR0 = 2000;
_BIS_SR(LPM3_bits + GIE); //进入LPM3 低功耗模式和开总中断允许
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void Timer_A(void)
{
P1OUT ^= BIT0;
}
就是从0开始计数到TA0CCR0(2000)结束吧?
哪计2000下总共用了多长时间呢?就是从下面这句得来的吧?
TA1CTL=TASSEL_2+ID_3+MC_1; //SMCLK(8KHZ). 8分频。 UP to CCR0 1Us
具体怎么算的?辅助时钟+8分频+计数到2000?然后呢?
此帖出自
小平头技术问答
使用这种方式可以吗?
一周热门 更多>