前言
泰凌微的定时器可以应用在计时、电平测量、脉冲捕捉等方面,本章主要讲解下硬件定时器与软定时器的配置使用
如有异议,欢迎留言指正
特性
- 硬件定时器支持Timer0~Timer2
- 支持四种模式
- 系统时钟模式(System Clock)
- GPIO触发模式(脉冲数捕捉)
- GPIO脉宽模式(脉冲宽度捕获)
- 计时模式(Tick)
- 定时器Timer2可用于看门狗计时
- 休眠状态下定时器停止计时
寄存器组
- Wd_status:地址0x72,看门狗复位状态寄存器,最低位为1时为看门狗复位状态,写1清除
- TMR_CTRL0:地址0x620,控制寄存器0,配置定时器使能位与模式选择
- TMR_CTRL[1~2]:地址0x621~0x622, 看门狗比较计数配置
- TMR_STATUS:地址0x623,Timer0~2与wdog状态寄存器,写1清除状态
- TMR_CAPT0_[0~3]:地址0x624~0x627, timer0 4字节捕获寄存器
- TMR_CAPT1_[0~3]:地址0x628~0x62b,timer1 4字节捕获寄存器
- TMR_CAPT2_[0~3]:地址0x62c~0x62f,timer2 4字节捕获寄存器
- TMR_TICK0_[0-3]:地址0x630~0x633,timer0 4字节tick寄存器
- TMR_TICK1_[0-3]:地址0x634~0x637,timer1 4字节tick寄存器
- TMR_TICK2_[0-3]:地址0x638~0x63b,timer2 4字节tick寄存器
硬件定时器
代码实例
参考SDK中app_timer.c中的例程代码讲解
- 定时器初始化,封装好的API接口可以查看驱动目录下的
timer.c
void app_timer_test_init(void)
{
//timer0 配置
reg_irq_mask |= FLD_IRQ_TMR0_EN;//使能timer0中断
reg_tmr0_tick = 0; //tick清0
reg_tmr0_capt = 100 * CLOCK_SYS_CLOCK_1MS;//100ms定时
reg_tmr_sta = FLD_TMR_STA_TMR0; //清中断状态
reg_tmr_ctrl |= FLD_TMR0_EN; //使能定时器0
//timer1 配置
reg_irq_mask |= FLD_IRQ_TMR1_EN;//使能timer1中断
reg_tmr1_tick = 0; //tick清0
reg_tmr1

本文详细介绍了泰凌微处理器中硬件定时器Timer0~Timer2的配置与使用,包括四种工作模式,如系统时钟模式、GPIO触发模式等。同时提到了看门狗定时器Timer2的特性以及在休眠状态下的行为。此外,还阐述了软件定时器的原理和应用场景,它是基于systemtick的非精确定时器,适用于资源有限和非精确延迟的场景。最后,给出了硬件和软件定时器的代码实例以及中断处理函数。
9477

被折叠的 条评论
为什么被折叠?



