打印
[STM32F2]

定时时间的公式

[复制链接]
291|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chuxh|  楼主 | 2020-3-1 09:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想用TA定时器定时15s的时间进入中断是将引脚取反,请问这个15s定时参数应该怎么设置啊,手册没看太懂,
如果如下设置:CCR0 = 500;                                 
    TACTL = TASSEL_2 + MC_1 ;
分别是表示什么意思呢,定时器定时时间的公式是什么啊?

使用特权

评论回复
沙发
zwll| | 2020-3-1 10:05 | 只看该作者
一秒一秒的来呀

使用特权

评论回复
板凳
juventus9554| | 2020-3-1 10:08 | 只看该作者
或者1.5秒1.5秒的来

使用特权

评论回复
地板
llljh| | 2020-3-1 10:10 | 只看该作者
对着手册看下寄存器,手册上面写得很清楚

使用特权

评论回复
5
pengf| | 2020-3-1 10:13 | 只看该作者
具体寄存器 参数应该怎么设置

使用特权

评论回复
6
supernan| | 2020-3-1 10:17 | 只看该作者
对着手册看下寄存器,手册上面写得很清楚

使用特权

评论回复
7
houcs| | 2020-3-1 10:20 | 只看该作者

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

使用特权

评论回复
8
liuzaiy| | 2020-3-1 10:23 | 只看该作者
在PUC 后, MCLK 和 SMCLK 来自 1.1MHz 的 DCOCLK,TASSEL_2相当于SMCLK  =1.1MHZ,这样50000算上去差不多等于50ms

使用特权

评论回复
9
pangb| | 2020-3-1 10:28 | 只看该作者
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;
  }
}

}

使用特权

评论回复
10
zyf部长| | 2020-3-1 10:35 | 只看该作者

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

使用特权

评论回复
11
guoyt| | 2020-3-1 10:39 | 只看该作者
TA0CCR0/SMCLK=50000/(1.1*10^6)=50ms

使用特权

评论回复
12
langgq| | 2020-3-1 11:03 | 只看该作者
这个手册上应该是有说明的吧

使用特权

评论回复
13
zhanglli| | 2020-3-1 11:06 | 只看该作者
注释中的比较值设为50000,相当于50ms的时间间隔

使用特权

评论回复
14
wenfen| | 2020-3-1 11:13 | 只看该作者

也可以加循环

使用特权

评论回复
15
songqian17| | 2020-3-1 11:15 | 只看该作者
楼上的办法也是一个办法 可以随意将定时器定时 然后计算多少个循环够15s即可

使用特权

评论回复
16
juventus9554| | 2020-3-1 11:18 | 只看该作者
定义成1秒或半秒,计数够15秒就行了。

使用特权

评论回复
17
dingy| | 2020-3-1 11:23 | 只看该作者
定时器设置不了这么大的时间,必须通过软件累加的,或者使用RTC中断。

使用特权

评论回复
18
chuxh|  楼主 | 2020-3-1 11:29 | 只看该作者

哦,那我就知道怎么回事了,多谢大家

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

936

主题

11296

帖子

2

粉丝