智能车制作

标题: k60 定时器 设置 [打印本页]

作者: 天马行空_8    时间: 2013-11-21 19:21
标题: k60 定时器 设置
使用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    时间: 2013-11-21 19:22
在线等……
作者: 天马行空_8    时间: 2013-11-21 19:59

作者: 天马行空_8    时间: 2013-11-22 20:35
已经解决一部分 可以使用外部时钟分频了 但是还没法使用内部时钟
作者: 烦躁丶    时间: 2013-12-8 11:54
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    时间: 2013-12-10 14:33
烦躁丶 发表于 2013-12-8 11:54
LPTMR0_PSR是一个32位的寄存器,不知道LPTMR0_PSR = 0x78;是什么意思。你要是想分频,可以修改成 LPTMR0_PS ...

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

作者: 烦躁丶    时间: 2013-12-12 08:56
天马行空_8 发表于 2013-12-10 14:33
参考数据手册  里边就四个寄存器  用外部时钟可以分频  但是用总线时钟就不知道了  我试着设置成总线时钟 ...

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

作者: 天马行空_8    时间: 2013-12-26 20:16
烦躁丶 发表于 2013-12-12 08:56
上次问了下野火,他说他的新版库里是用的OSCERCLK,我问他MCGIRCLK怎么配置,他说这个配置比较复杂,没有 ...

你是说FTM吗?     





欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2