当前文档版本为 v0.3.0,您可以访问当前页面的 开发中 版本以获取最近可能的更新。

timer_capture例程

1 功能概述

本例程主要演示 EVB timer2 捕捉模式0的简单例程,本例程以捕捉通道2为示例,捕捉通道2与P3_6相关联, P3_6与KEY RST相连接,通过不断按下KEY RST来触发timer2的捕捉事件,然后通过串口将通道2捕捉的计数值打印出来。

2 环境要求

  • Board: PAN2628B1_EVB

  • 将 J13(P3_6) 开关拔至PWM1侧,将P3_6引脚与RGB蓝色led控制引脚相连,禁用P3_6复位功能,设置为普通IO功能,并配置成输入模式带上位电阻

  • 将 J17(P1_2) 开关拔至PWM1侧,将P1_2与RGB蓝色指示灯控制引脚相连

  • 将 J19(P3_1) 开关拔至TX侧,将P3_1引脚与uart的TX引脚相连

3 编译和烧录

例程位置:pan2628_dk\01_SDK\example_basic\timer\timer_capture例程

打开目录下keil下的timer_capture.uvprojx工程,编译整个代码工程。

4 演示说明

根据环境要求一节的介绍,正确连接 EVB 开发板的跳线,编译、下载代码后:

  1. 在电脑上打开串口调试工具,串口参数:115200/8bit/1stop/无校验

  2. 不断按下KEY RST触发timer2 channel2下降沿捕捉事件

  3. 观察串口调试工具是否有Timer2CaptureCnt输出

  4. 观察按下KEY RST后是否触发LED状态翻转

串口输出信息如下:

Timer2 channel2 capture test.
Timer2CaptureCnt:0xb932
Timer2CaptureCnt:0xd242
Timer2CaptureCnt:0x2dee
Timer2CaptureCnt:0xa59d
Timer2CaptureCnt:0x6e44
Timer2CaptureCnt:0x70b8
Timer2CaptureCnt:0x57c6
Timer2CaptureCnt:0x5902
Timer2CaptureCnt:0x780d
Timer2CaptureCnt:0x8f72

5 开发说明

通过调用 timer.c中的TIM_TimeBaseInit()、TIM_CapInit()、TIM_EnableIRQ()、TIM_Cmd()等函数接口来实现timer基础功能配置,详细请查阅代码。

/* timer2 base function initialize */
TIM_TimeBaseInit(TIMER2, TIM2_Mode1_16BitNoReload, TIM_CLK_DIV_12T, 0x0000);

/* timer2 capture function initialize */
TIM_CapInit(TIMER2, TIM_Channel2, TIM_CapMode0, TIM_CapPolarity_Falling, 0x0000);

TIM_EnableIRQ(TIMER2);      /**< Enable timer2 interrupt */

TIM_Cmd(TIMER2, ENABLE);    /**< Start timer2 */

6 RAM/Flash资源使用情况

Program Size: data=16.0 xdata=0 const=8 code=1361