这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 【瑞萨RA8D1开发板学习历程】:04AGT+瑞萨低功耗定时器的配置(基本定时器

共1条 1/1 1 跳转至

【瑞萨RA8D1开发板学习历程】:04AGT+瑞萨低功耗定时器的配置(基本定时器)

高工
2025-06-13 09:48:35     打赏

今天继续和大家分享瑞萨AGT定时器的软件配置过程。

   一:低功耗定时器知识分享:

    低功耗异步通用计时器(AGT)是一款16位计时器,可用于脉冲输出、外部脉冲宽度或周期的测量,以及计数外部事件。:该计时器由一个重装寄存器和下计数器组成。重装寄存器和下计数器被分配至相同的地址,可通过AGT寄存器进行访问。

1.png

定时器几种工作模式

定时器模式 :在该模式下,计数值在计数源的每个上升沿递减1。当计数值到达 0x0000 并输人下一个计数源时,发生计数器下溢事件并产生中断请求。

脉冲输出模式 :可以从 AGTIOn 和 AGTOn 引脚输出脉冲。每次发生下溢时,输出电平都会反转。实现输出PWM功能。

事件计数器模式 :在事件计数器模式下,计数器由输人到 AGTIOn 引脚的外部事件信号(计数源)驱动(递减计数)。

脉冲宽度测量模式: 在脉冲宽度测量模式下,测量输人到 AGTIOn 引脚的外部信号的脉冲宽度。

脉冲周期测量模式 在脉冲周期测量模式下,测量输入到 AGTOn 引脚的外部信号的脉冲周期。仅测量周期长于计数源周期两倍的输入脉冲。此外,低电平和高电平宽度都必须长于计数源的周期。如果输人比这些条件短的脉冲周期,输人可能会被忽略。

比较匹配功能:PWM 模式比较匹配功能可用于PWM输出。

主要特性如下所示:

超低功耗运行:

可在CPU休眠模式下独立工作、典型功耗在微安(μA)级别

多种工作模式:

间隔定时器模式、脉冲输出模式、唤醒定时器模式

宽范围时钟源选择:

内部低速振荡器(LOCO)、外部32.768kHz晶体、内部主时钟分频

灵活的时钟分频:

二:软件配置E2S软件配置过程如下:

2.1 开启低功耗定时器的功能

2.png

这里我们使能低功耗定时0。

2.2 配置低功耗定时器基本属性

3.png

这里时钟源如下

主要有四类时钟输人源:

PCLKB:PCLKB,PCLKB/2.PCLKB/8

LOCO,SUBCLK:AGTLCLK/d, AGTsCLK/d (d = 1, 2,4, 8, 16, 32, 64, 128)·

仅 AGTn (n=1,3,5)也可以连接到 AGTn (n=0,2,4)的下溢信号进行计数

外部事件输人(通过 AGTIO 引脚)

三:软件代码如下:

3.1 初始化定时器0:

/*定时器0 初始化函数*/
/* AGT初始化函数 系统定时器0用作系统时钟*/
void AGT_Timing_Init(void)
{
/* 初始化 APT 模块 */
R_AGT_Open(&g_timer0_ctrl, &g_timer0_cfg);

/* 启动 APT 定时器 */
R_AGT_Start(&g_timer0_ctrl);
}

3.2 定时器0回调函数编写:

宏定义一下LED的功能函数:

#define LED_TOGGLE R_PORT10->PODR ^= 1<<(BSP_IO_PORT_10_PIN_01 & 0xFF)

回调函数如下:

/* 定时器溢出 中断回调函数  运行时间100MS   */
void g_timer0_callback(timer_callback_args_t * p_args)
{
if (TIMER_EVENT_CYCLE_END == p_args->event)
{
LED_TOGGLE ;
}
//   R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_10_PIN_01, BSP_IO_LEVEL_LOW);
}

中断回调函数非常简单,使用if语句判断引起中断的事件,若是定时器溢出中断(TIMER EVENT_CYCLE END)则翻转一次 板载LED引脚 的电平。

总结如下:

1:使用FSP配置底层的定时器的驱动函数很方便,只需要简单的操作就可以。

2:配置时候注意定时器的时钟来源,时钟频率和时基的选择,错误的配置可能导致定时器无法输出想要的时基。

3:回调函数的里面的中断选择,触发时,添加用户代码即可。

四:试验现象:

板载的LED灯以1S的时间间隔闪烁。

五:应用场景如下:

系统唤醒定时器、周期性数据采集、实时时钟(RTC)辅助、看门狗定时器替代、节能模式下的时间基准




关键词: 瑞萨     定时器     功耗    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]