0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

瑞萨RA系列FSP库开发实战指南之使用GPT基本定时功能实验

瑞萨嵌入式小百科 来源:野火电子 2026-04-20 15:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

27.6

实验1:基本定时功能

本实验较为简单,我们将使用GPT定时器进行定时并产生中断请求触发中断,然后通过这个中断,切换LED的电平。

27.6.1

硬件设计

本次实验需要使用到LED灯来展示定时的效果,LED灯具体的电路讲解请参考本教程内容:第一个实验:用寄存器点亮LED灯——瑞萨RA系列FSP库开发实战指南(18)

注:

本实验仅用到LED1~3当中的其中一盏。

27.6.2

软件设计

27.6.2.1

新建工程

由于本实验需要用到LED,也会用到串口打印提示信息,因此我们在前面串口通信章节例程的基础上修改程序:UART波特率计算及实验1:UART收发回显————瑞萨RA系列FSP库开发实战指南(46)

对于e2studio开发环境:拷贝一份我们之前的e2s工程模板“19_UART_Receive_Send”,然后将工程文件夹重命名为“27_GPT_Basic_Timing”,最后再将它导入到我们的e2studio工作空间中。

对于Keil开发环境:拷贝一份我们之前的Keil工程模板“19_UART_Receive_Send”,然后将工程文件夹重命名为“27_GPT_Basic_Timing”,并进入该文件夹里面双击Keil工程文件,打开该工程。

工程新建好之后,在工程根目录的“src”文件夹下面新建“gpt”文件夹,再进入该文件夹里面新建源文件和头文件:“bsp_gpt_timing.c”和“bsp_gpt_timing.h”。工程文件结构如下。

列表1:文件结构

左右滑动查看完整内容

27_GPT_Basic_Timing
├─ ......
└─src
├─ led
│ ├─ bsp_led.c
│ └─ bsp_led.h
├─ debug_uart
│ ├─ bsp_debug_uart.c
│ └─ bsp_debug_uart.h
├─ gpt
│ ├─ bsp_gpt_timing.c
│ └─ bsp_gpt_timing.h
└─ hal_entry.c

27.6.2.2

FSP配置

首先打开FSP配置界面,在Stacks中加入GPT,如下图所示。

b0af52aa-3c6e-11f1-90a1-92fbcf53809c.png

我们使用GPT0来实现定时和触发中断功,需要修改的只有“General”和“Interrupts”部分,其他按照默认即可,如下图所示。

b11d285c-3c6e-11f1-90a1-92fbcf53809c.png

在上图中我们可以将GPT模块属性进行区域性地划分为:“Common”、“General”、“Output”、“Input”、“Interrupts”、“Extra Features”、“Pins”这几个部分。

本实验主要配置“General”和“Interrupts”这几个部分的属性,因此在这里会对它们进行详细讲解。

“Common”部分的配置属性:

表2:GPT属性描述:“Common”部分

b25a2990-3c6e-11f1-90a1-92fbcf53809c.png

“General”部分的配置属性:

表3:GPT属性描述:“General”部分

b2ccde68-3c6e-11f1-90a1-92fbcf53809c.png

“Interrupts”部分的配置属性:

表4:GPT属性描述:“Interrupts”部分

b3275d2a-3c6e-11f1-90a1-92fbcf53809c.png

“Extra Features”部分的配置属性:

表5:GPT属性描述:“Extra Features”部分

b381717a-3c6e-11f1-90a1-92fbcf53809c.png

27.6.2.3

GPT初始化函数

GPT初始化函数用于初始化GPT模块,并且启动GPT定时器,该函数如下所示。

列表2:代码清单27-1

GPT初始化函数

左右滑动查看完整内容

/* GPT 初始化函数*/
voidGPT_Timing_Init(void)
{
/* 初始化GPT0 模块*/
R_GPT_Open(&g_timer_gpt0_ctrl, &g_timer_gpt0_cfg);
/* 启动GPT0 定时器*/
R_GPT_Start(&g_timer_gpt0_ctrl);
}

在GPT初始化函数里面,首先通过R_GPT_Open函数初始化GPT模块,随后调用R_GPT_Start函数来启动GPT定时器。

27.6.2.4

GPT中断回调函数

我们在FSP配置里配置了GPT的中断,溢出中断优先级为10,GPT中断回调函数如下。

列表3:代码清单27-2:GPT中断回调函数

左右滑动查看完整内容

#include"led/bsp_led.h"
/* GPT 中断回调函数*/
voidgpt0_timing_callback(timer_callback_args_t* p_args)
{
/* 定时器溢出事件*/
if(TIMER_EVENT_CYCLE_END == p_args->event)
{
/* 翻转LED1 */
LED1_TOGGLE;//每秒翻转一次
}
}

该中断回调函数非常地简单,直接在回调函数里面使用if语句判断触发中断的事件是否是定时器溢出事件,若是定时器溢出事件则翻转一次LED1引脚的电平。由于定时器被我们配置为1秒的计时周期,因此每1秒会溢出一次,控制LED1的引脚的电平会每秒钟翻转一次。

27.6.2.5

hal_entry入口函数

以启明6M5开发板的RA6M5工程为例,hal_entry入口函数如下所示。

列表4:代码清单27-3:hal_entry函数

左右滑动查看完整内容

/* 用户头文件包含*/
#include"led/bsp_led.h"
#include"debug_uart/bsp_debug_uart.h"
#include"gpt/bsp_gpt_timing.h"
voidhal_entry(void)
{
/*TODO:add your own code here */
LED_Init();// LED 初始化
Debug_UART4_Init();// SCI4 UART 调试串口初始化
GPT_Timing_Init();// GPT 初始化
printf("这是一个GPT 的基本定时功能实验
");
while(1)
{
printf("The program is running ...
");
R_BSP_SoftwareDelay(1, BSP_DELAY_UNITS_SECONDS);
}
#ifBSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
}

27.6.3

下载验证

编译并下载到开发板后,复位板子让程序运行,然后可以观察到板载LED1(红色)每秒钟翻转一次状态,即以两秒为周期在缓慢闪烁。

未完待续

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 瑞萨
    +关注

    关注

    38

    文章

    22516

    浏览量

    91164
  • 中断
    +关注

    关注

    5

    文章

    919

    浏览量

    43868
  • 定时器
    +关注

    关注

    23

    文章

    3372

    浏览量

    124445
  • GPT
    GPT
    +关注

    关注

    0

    文章

    371

    浏览量

    16956

原文标题:实验1:基本定时功能——瑞萨RA系列FSP库开发实战指南(99)

文章出处:【微信号:瑞萨嵌入式小百科,微信公众号:瑞萨嵌入式小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RA系列FSP开发实战指南I2C读写EEPROM实验

    使用官方提供的FPS进行编程,官方提供的FPS具有方便、快捷、简洁的特性。
    的头像 发表于 01-27 10:02 3733次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>I2C读写EEPROM<b class='flag-5'>实验</b>

    e2studio(1)----芯片搭建FSP环境

    视频教学 样品申请 请勿添加外链 e2studio软件 e2studio是的集成开发环境,FSP 提供了众多可提高效率的工具,用于开发
    发表于 09-30 15:28

    RA-Eco-RA4M2开发板评测】+VS Code 下 RA4M2 开发环境搭建与 GPIO 点灯实验教程

    软件烧录芯片程序——RA系列FSP开发
    发表于 04-15 15:12

    RA4系列开发板体验】开发环境搭建和新手点灯指南

    RA4系列开发板体验】开发环境搭建和新手点灯指南
    发表于 11-24 22:54

    RA4系列开发板体验】4. PWM驱动LED

    之前发帖:【RA4系列开发板体验】1. 新建工程+按键控制LED【
    发表于 12-04 18:23

    RA4系列开发板体验】10. 我的试用总结

    之前发帖:【RA4系列开发板体验】1. 新建工程+按键控制LED【
    发表于 12-10 22:34

    RA4系列开发板体验】GPT定时器的基础使用

    RA4M2的系统重,提供了三种定时器,从手册之中可以了解:三种定时器分别是:普通PWM 32位定时器:GPT32普通PWM 16位
    发表于 12-15 00:23

    RA4系列开发板体验】体验过程

    拿到板子之后,做了几个实验过程,过程如下:1、在好奇心驱动下,逐步接触;参照网上的实例,学习开发环境一、开箱验货二、搭建环境参考“ 【
    发表于 12-18 16:20

    【野火启明6M5开发板体验】开箱+认识开发板+资料

    按键检测29. WiFi——模块通讯板尺寸:3、资料:*附件:[野火EmbedFire]《RA系列FSP
    发表于 12-20 23:28

    【有奖直播预报名】电子RA系列产品开发工具FSP4.0.0新特性介绍

    为使用电子RA系列ARM微控制器的嵌入式系统设计提供简单易用且可扩展的高质量软件。 直播主题
    的头像 发表于 11-22 12:20 1671次阅读

    【视频教程】RA单片机FSP开发(3)FSP架构-解释Blinky架构[上]

    干货分享 前篇回顾 【视频教程】RA单片机FSP开发(1)环境搭建(带RASC) 【视频教程】
    的头像 发表于 12-06 12:15 2112次阅读

    使用e² studio FSP基于RA2E1定时器配置PWM输出

    使用e² studio FSP基于RA2E1定时器配置PWM输出
    的头像 发表于 08-01 00:13 2202次阅读
    使用<b class='flag-5'>瑞</b><b class='flag-5'>萨</b>e² studio <b class='flag-5'>FSP</b>基于<b class='flag-5'>RA</b>2E1<b class='flag-5'>定时</b>器配置PWM输出

    电子RA系列微控制器的可扩展性强的配置软件包 (FSP)安装下载与使用指南

    电子RA系列微控制器的可扩展性强的配置软件包 (FSP)安装下载与使用指南
    的头像 发表于 06-11 17:21 2184次阅读

    FSP6.2:RA8新品支持与功能大升级!

    FSP(FlexibleSoftwarePackage)灵活配置软件包是电子(Renesas)为RA系列微控制器(MCU)家族
    的头像 发表于 12-17 12:04 712次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>FSP</b>6.2:<b class='flag-5'>RA</b>8新品支持与<b class='flag-5'>功能</b>大升级!

    RA系列FSP开发实战指南SPI通讯协议的结构和功能

    RA6M5为例,SPI的功能结构框图如下图所示。接下来我们大致地研究一下它的结构和功能
    的头像 发表于 02-03 13:53 946次阅读
    <b class='flag-5'>瑞</b><b class='flag-5'>萨</b><b class='flag-5'>RA</b><b class='flag-5'>系列</b><b class='flag-5'>FSP</b><b class='flag-5'>库</b><b class='flag-5'>开发</b><b class='flag-5'>实战</b><b class='flag-5'>指南</b><b class='flag-5'>之</b>SPI通讯协议的结构和<b class='flag-5'>功能</b>