定时时间的公式
我想用TA定时器定时15s的时间进入中断是将引脚取反,请问这个15s定时参数应该怎么设置啊,手册没看太懂,如果如下设置:CCR0 = 500;
TACTL = TASSEL_2 + MC_1 ;
分别是表示什么意思呢,定时器定时时间的公式是什么啊? 一秒一秒的来呀
或者1.5秒1.5秒的来
对着手册看下寄存器,手册上面写得很清楚
具体寄存器 参数应该怎么设置
对着手册看下寄存器,手册上面写得很清楚
TA0CCR0 = 100;//比较值设为50000,相当于50ms的时间间隔
时钟源为SMCLK 在PUC 后, MCLK 和 SMCLK 来自 1.1MHz 的 DCOCLK,TASSEL_2相当于SMCLK=1.1MHZ,这样50000算上去差不多等于50ms
main()
{WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
IO_Init();
TA0CTL |= MC_1 + TASSEL_2 + TACLR; //时钟为 SMCLK,比较模式,开始时清
零计数器
TA0CCTL0 = CCIE; //比较器中断使能
TA0CCR0 = 100; //比较值设为 50000,相当于 50ms 的时
间间隔
__enable_interrupt();}
#pragma vector = TIMER0_A0_VECTOR
__interrupt void Timer_A (void)
{
i++;
if(i==500)
{
P8OUT ^= BIT1; //形成闪灯效果
i=0;
}
}
} 钟源和时间间隔的公式是?
TA0CCR0/SMCLK=50000/(1.1*10^6)=50ms
这个手册上应该是有说明的吧
注释中的比较值设为50000,相当于50ms的时间间隔
也可以加循环
楼上的办法也是一个办法 可以随意将定时器定时 然后计算多少个循环够15s即可
定义成1秒或半秒,计数够15秒就行了。
定时器设置不了这么大的时间,必须通过软件累加的,或者使用RTC中断。
哦,那我就知道怎么回事了,多谢大家
页:
[1]