chuxh 发表于 2022-2-19 15:18

定时时间的公式

我想用TA定时器定时15s的时间进入中断是将引脚取反,请问这个15s定时参数应该怎么设置啊,手册没看太懂,
如果如下设置:CCR0 = 500;                                 
    TACTL = TASSEL_2 + MC_1 ;
分别是表示什么意思呢,定时器定时时间的公式是什么啊?

chenjunt 发表于 2022-2-19 15:20

一秒一秒的来呀

heweibig 发表于 2022-2-19 15:22

或者1.5秒1.5秒的来

llljh 发表于 2022-2-19 15:25

对着手册看下寄存器,手册上面写得很清楚

zwll 发表于 2022-2-19 15:31

具体寄存器 参数应该怎么设置

pengf 发表于 2022-2-19 15:33

对着手册看下寄存器,手册上面写得很清楚

houcs 发表于 2022-2-19 15:35


TA0CCR0 = 100;//比较值设为50000,相当于50ms的时间间隔
时钟源为SMCLK

liuzaiy 发表于 2022-2-19 15:37

在PUC 后, MCLK 和 SMCLK 来自 1.1MHz 的 DCOCLK,TASSEL_2相当于SMCLK=1.1MHZ,这样50000算上去差不多等于50ms

chenjunt 发表于 2022-2-19 15:39

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;
}
}

}

juventus9554 发表于 2022-2-19 15:43

钟源和时间间隔的公式是?

renyaq 发表于 2022-2-19 15:44

TA0CCR0/SMCLK=50000/(1.1*10^6)=50ms

yufe 发表于 2022-2-19 15:47

这个手册上应该是有说明的吧

chuxh 发表于 2022-2-19 15:50

注释中的比较值设为50000,相当于50ms的时间间隔

jiajs 发表于 2022-2-19 15:52

也可以加循环

yszong 发表于 2022-2-19 15:55

楼上的办法也是一个办法 可以随意将定时器定时 然后计算多少个循环够15s即可

juventus9554 发表于 2022-2-19 16:01

定义成1秒或半秒,计数够15秒就行了。

dingy 发表于 2022-2-19 16:05

定时器设置不了这么大的时间,必须通过软件累加的,或者使用RTC中断。

chuxh 发表于 2022-2-19 16:08

哦,那我就知道怎么回事了,多谢大家
页: [1]
查看完整版本: 定时时间的公式