[牛人杂谈] 定时器

[复制链接]
806|9
 楼主| xuanhuanzi 发表于 2018-12-25 15:32 | 显示全部楼层 |阅读模式

1.

各通道有独立的时钟源(TMR0_CLK, TMR1_CLK, TMR2_CLK, TMR3_CLK)
时间溢出周期= (Period of timer clock input) * (8-bit Prescale + 1) * (24-bit TCMP)
最大计数周期= (1 / 25 MHz) * (2^8) * (2^24), if TCLK = 25 MHz
8位预分频计数器,带24位向上计数定时器
内部24位定时器的值,通过TDR(定时器数据寄存器)可读取

2.

每个通道带一个8位预分频计数器,一个24位向上计数器,一个24位比较寄存器和一个中断请求信号.

3. 003NKpfLgy6HylAYbmZ7d&690.jpg

4.定时器模式

#define TIMER_ONESHOT_MODE                  (0UL << TIMER_TCSR_MODE_Pos)


#define TIMER_PERIODIC_MODE                 (1UL << TIMER_TCSR_MODE_Pos)


#define TIMER_TOGGLE_MODE                   (2UL << TIMER_TCSR_MODE_Pos)


#define TIMER_CONTINUOUS_MODE               (3UL << TIMER_TCSR_MODE_Pos)


#define TIMER_CONTINUOUS_MODE               (3UL << TIMER_TCSR_MODE_Pos)

#define TIMER_CAPTURE_FREE_COUNTING_MODE    (0UL << TIMER_TEXCON_RSTCAPSEL_Pos)


#define TIMER_CAPTURE_COUNTER_RESET_MODE    (1UL << TIMER_TEXCON_RSTCAPSEL_Pos)


 楼主| xuanhuanzi 发表于 2018-12-25 15:32 | 显示全部楼层
5.定时器默认配置

    //配置计时器的时钟源

    CLK_EnableModuleClock(TMR1_MODULE);
    CLK_SetModuleClock(TMR1_MODULE, CLK_CLKSEL1_TMR0_S_HCLK, 12000);


    TIMER_Open(TIMER1, TIMER_CONTINUOUS_MODE, 1); 设置定时器模式




    TIMER_SELECT_TOUT_PIN(TIMER1, TIMER_TOUT_PIN_FROM_TX_PIN);  输出引脚
    TIMER_SET_PRESCALE_VALUE(TIMER1, 0);  定时器初值
    TIMER_SET_CMP_VALUE(TIMER1, 56789);   定时器比较值
    这行程序会让计数器不能计数  //TIMER_EnableEventCounter(TIMER1, TIMER_COUNTER_FALLING_EDGE);  定时器向上计数
    TIMER_EnableInt(TIMER1); 使能计时器




    NVIC_EnableIRQ(TMR1_IRQn); 使能定时器的中断




    TIMER_Start(TIMER1);  开始定时器




    TIMER_Close(TIMER1);  关闭定时器

6.

void TMR1_IRQHandler(void) 定时器中断。

中断向量以启动文件为标准。

gejigeji521 发表于 2018-12-25 20:45 | 显示全部楼层
讲的透彻。大家都说那个库有个函数多余。不知道官方什么时候更新。
yiyigirl2014 发表于 2018-12-25 22:30 | 显示全部楼层
定时器的功能的确很强大。
Harvard 发表于 2018-12-25 22:35 | 显示全部楼层
库还是不错的  自己写宏定义  瞎折腾...  用官方的吧
xinpian101 发表于 2018-12-26 16:17 | 显示全部楼层
定时器还有个运放。
598330983 发表于 2018-12-29 23:41 来自手机 | 显示全部楼层
定时器的计算很重要。要结合时钟源
磨砂 发表于 2019-1-8 09:33 | 显示全部楼层
非常感谢楼主分享
观海 发表于 2019-1-8 11:09 | 显示全部楼层
楼主详解的很详细  感谢分享
paotangsan 发表于 2019-1-8 11:44 | 显示全部楼层
是用的外部晶振吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

183

主题

2331

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部