之前对瑞萨的开发板测评过一些板子,今天和大家分享一下RA2L1的定时器配置过程,及开发过程中遇到的问题。
开发环境:e2s 5.9版本。
一:开发板介绍:
RA-Eco-RA2L1-48PIN-V1.0是一款基于48 MHz Arm® Cortex®-M23 内核架构的核心板,主控芯片为R7FA2L1AB2DFL。RA2L1 产品组基于 Arm® Cortex®-M23 核心(现今 Arm® Cortex-M 系列中功耗最低的 CPU)。 这款产品采用优化的制程和瑞萨电子的低功耗工艺技术,是业界一流水平的超低功耗微控制器。 RA2L1 产品组能够支持 1.6V 至 5.5V 宽电压工作,CPU 时钟频率最高 48MHz,且运行模式电流和待机模式电流更低。 RA2L1 产品群配备了增强型电容式触摸感应单元 (CTSU2)、串行通信接口、高精度模拟电路和定时器。 产品封装从 48 引脚到 100 引脚。
二:开发板特性:
1个复位按键
1个自定义按键
2个触摸按键
2个LED
板载USB转TTL模块
板载SWD接口,方便用户调试与下载
48MHz Arm Cortex-M23
256KB 代码闪存和 32KB SRAM(支持 ECC)
8KB 数据闪存,提供与 EEPROM 类似的数据存储功能
48 引脚封装
内部电压调节电路
增强型电容式触摸感应单元 (CTSU2)
12 位 ADC,12 位 DAC,低功耗比较器
32 位通用 PWM 定时器,16 位通用 PWM 定时器,低功耗异步通用定时器
实时时钟
串行通信接口(UART、简单 SPI、简单 I2C)
独立的SPI接口 / I2C 多主接口
CAN
安全功能
加密功能
三:开发板图片:
四:FSP库配置如下:
4.1 定时器 AGT的配置如下:
这里我配置的是每秒进入一次中断的
4.2 板载LED灯所使用的引脚如下:
板载LED灯使用的是P104 和P105,所以我们再PIN 内配置两个引脚为输出模式,如下所示:
4.3 时钟树的配置如下所示:
五:程序编写如下:
实现功能如下:
1:板载LED1 在主函数中,以100MS的时间间隔闪烁,在主程序中被调用。
2:板载LED2 在定时器AGT中,以1S的时间间隔闪烁,在定时器回调函数中被处理。
主函数如下所示:
AGT_Time0_Init(); while(1) { R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); // NOLINT /* R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_LOW);*/ R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_LOW); R_BSP_SoftwareDelay(100, BSP_DELAY_UNITS_MILLISECONDS); // NOLINT /* R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_03, BSP_IO_LEVEL_HIGH);*/ R_IOPORT_PinWrite(&g_ioport_ctrl, BSP_IO_PORT_01_PIN_04, BSP_IO_LEVEL_HIGH); }
定时器处理部分如下:初始化及其回调函数处理:
void AGT_Time0_Init(void) ; #define LED_TOGGLE R_PORT1->PODR ^= 1<<(BSP_IO_PORT_01_PIN_03 & 0xFF) /*定时器0 初始化函数*/ /* AGT初始化函数 系统定时器0用作系统时钟*/ void AGT_Time0_Init(void) { // 初始化 APT 模块 R_AGT_Open(&g_timer0_ctrl,&g_timer0_cfg); // 启动 APT 定时器 R_AGT_Start(&g_timer0_ctrl); } /* 定时器溢出 中断回调函数 运行时间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_01_PIN_03, BSP_IO_LEVEL_HIGH); } }
六:实物验证如下所示:
调试过程遇到问题:
1:对于官方的给出库,FSP库的版本太低,现在使用的FSP库有点高,在编译过程中,出现编译不通过的情况,所以这里我新建的工程,进行开发,调试。
2:在配置时候,需要参考板载的资源,由于开发板上面的外部晶振没有焊接,当我们使用时候,需要自行焊接,否则会导致程序运行错误的。
3:在着就是定时器时钟来源的配置,由于低功耗定时器是16位,开始配置时钟来源是PCLKB的,导致定时器中断进入的时间错误,在查询资料发现,是配置的问题,这里我使用的是HOCO的时钟来源。
4:熟练的掌握FSP的配置过程,对于二次开发会很方便。
七:测试代码如下所示: