智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 4069|回复: 7
打印 上一主题 下一主题

[编程类] k60 定时器 设置

[复制链接]

8

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
威望
776
贡献
472
兑换币
489
注册时间
2013-8-6
在线时间
173 小时
跳转到指定楼层
1#
发表于 2013-11-21 19:21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1贡献
使用k60的低功耗定时器(LPTMR) 我用1kHz的时钟时可以正常使用  我想设置预分频的时候就出问题了  各位大神帮忙看看void time_delay_ms(uint32 count_val)
{
  /* Make sure the clock to the LPTMR is enabled */
  SIM_SCGC5|=SIM_SCGC5_LPTIMER_MASK;

  /* Set the compare value to the number of ms to delay */
  LPTMR0_CMR = count_val;  

  /* Set up LPTMR to use 1kHz LPO with no prescaler as its clock source */
// LPTMR0_PSR = LPTMR_PSR_PCS(1)|LPTMR_PSR_PBYP_MASK;
  LPTMR0_PSR = 0x78;
  /* Start the timer */
  LPTMR0_CSR |= LPTMR_CSR_TEN_MASK;

  /* Wait for counter to reach compare value */
  while (!(LPTMR0_CSR & LPTMR_CSR_TCF_MASK));

  /* Clear Timer Compare Flag */
  LPTMR0_CSR &= ~LPTMR_CSR_TEN_MASK;
  return;
}

8

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
威望
776
贡献
472
兑换币
489
注册时间
2013-8-6
在线时间
173 小时
2#
 楼主| 发表于 2013-11-21 19:22:18 | 只看该作者
在线等……
回复

使用道具 举报

8

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
威望
776
贡献
472
兑换币
489
注册时间
2013-8-6
在线时间
173 小时
3#
 楼主| 发表于 2013-11-21 19:59:35 | 只看该作者
回复

使用道具 举报

8

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
威望
776
贡献
472
兑换币
489
注册时间
2013-8-6
在线时间
173 小时
4#
 楼主| 发表于 2013-11-22 20:35:50 | 只看该作者
已经解决一部分 可以使用外部时钟分频了 但是还没法使用内部时钟
回复

使用道具 举报

7

主题

68

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2415
威望
955
贡献
612
兑换币
613
注册时间
2013-3-20
在线时间
424 小时
5#
发表于 2013-12-8 11:54:23 | 只看该作者
LPTMR0_PSR是一个32位的寄存器,不知道LPTMR0_PSR = 0x78;是什么意思。你要是想分频,可以修改成 LPTMR0_PSR = LPTMR_PSR_PRESCALE(x)| LPTMR_PSR_PCS(1)|LPTMR_PSR_PBYP_MASK;中的x值,x为0~13。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
我最近也想改定时器的时钟源,有个问题想问下:
官方例程中LPTMRx的时钟LPO未分频只有1KHz,定时最小为1ms。LPTMR的时钟有四种:MCGIRCLK、LPO、ERCLK32K、OSCERCLK,我想把定时改到us级,想用MCGIRCLK得到1MHz,但不知道MCG该怎么配置。
回复

使用道具 举报

8

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
威望
776
贡献
472
兑换币
489
注册时间
2013-8-6
在线时间
173 小时
6#
 楼主| 发表于 2013-12-10 14:33:52 | 只看该作者
烦躁丶 发表于 2013-12-8 11:54
LPTMR0_PSR是一个32位的寄存器,不知道LPTMR0_PSR = 0x78;是什么意思。你要是想分频,可以修改成 LPTMR0_PS ...

参考数据手册  里边就四个寄存器  用外部时钟可以分频  但是用总线时钟就不知道了  我试着设置成总线时钟就没法应了
回复

使用道具 举报

7

主题

68

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2415
威望
955
贡献
612
兑换币
613
注册时间
2013-3-20
在线时间
424 小时
7#
发表于 2013-12-12 08:56:24 | 只看该作者
天马行空_8 发表于 2013-12-10 14:33
参考数据手册  里边就四个寄存器  用外部时钟可以分频  但是用总线时钟就不知道了  我试着设置成总线时钟 ...

上次问了下野火,他说他的新版库里是用的OSCERCLK,我问他MCGIRCLK怎么配置,他说这个配置比较复杂,没有深究。
定时器还可以考虑下内核自带的滴答定时器,挺好用的。
回复

使用道具 举报

8

主题

96

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1594
威望
776
贡献
472
兑换币
489
注册时间
2013-8-6
在线时间
173 小时
8#
 楼主| 发表于 2013-12-26 20:16:16 | 只看该作者
烦躁丶 发表于 2013-12-12 08:56
上次问了下野火,他说他的新版库里是用的OSCERCLK,我问他MCGIRCLK怎么配置,他说这个配置比较复杂,没有 ...

你是说FTM吗?     
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-28 22:16 , Processed in 0.106122 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表