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

timer_base例程

1 功能概述

本例程主要演示 EVB timer基础定时功能的简单例程,以timer0&timer1定时器为示例,两个定时器分别设定最大计数周期49.152ms,并开启中断, timer0每发生20次中断,让蓝色led状态翻转一次;timer1每发生20次中断,让红色led状态翻转一次。

*注:

  • RGB蓝色指示灯对应P1_2

  • RGB红色指示灯对应P3_0

2 环境要求

  • Board: PAN2628B1_EVB

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

  • 将 J18(P3_0) 开关拔至PWM2侧,将P3_0与RGB红色led控制引脚相连

3 编译和烧录

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

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

4 演示说明

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

  1. 观察蓝色led灯是否状态是否1秒翻转一次

  2. 观察红色led灯是否状态是否1秒翻转一次

5 开发说明

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

/* timer0 initialize */
TIM_TimeBaseInit(TIMER0, TIM0_Mode1_16BitNoReload, TIM_CLK_DIV_12T, 0x0000);

/* timer1 initialize */
TIM_TimeBaseInit(TIMER1, TIM1_Mode1_16BitNoReload, TIM_CLK_DIV_12T, 0x0000);

TIM_EnableIRQ(TIMER0);      /**< Enable timer0 interrupt */

TIM_EnableIRQ(TIMER1);      /**< Enable timer1 interrupt */

TIM_Cmd(TIMER0, ENABLE);    /**< Start timer0 */

TIM_Cmd(TIMER1, ENABLE);    /**< Start timer1 */

6 RAM/Flash资源使用情况

Program Size: data=18.0 xdata=0 const=8 code=1320