27.6
實(shí)驗(yàn)1:基本定時(shí)功能
本實(shí)驗(yàn)較為簡單,我們將使用GPT定時(shí)器進(jìn)行定時(shí)并產(chǎn)生中斷請求觸發(fā)中斷,然后通過這個(gè)中斷,切換LED的電平。
27.6.1
硬件設(shè)計(jì)
本次實(shí)驗(yàn)需要使用到LED燈來展示定時(shí)的效果,LED燈具體的電路講解請參考本教程內(nèi)容:第一個(gè)實(shí)驗(yàn):用寄存器點(diǎn)亮LED燈——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(18)
注:
本實(shí)驗(yàn)僅用到LED1~3當(dāng)中的其中一盞。
27.6.2
軟件設(shè)計(jì)
27.6.2.1
新建工程
由于本實(shí)驗(yàn)需要用到LED,也會用到串口打印提示信息,因此我們在前面串口通信章節(jié)例程的基礎(chǔ)上修改程序:UART波特率計(jì)算及實(shí)驗(yàn)1:UART收發(fā)回顯————瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(46)
對于e2studio開發(fā)環(huán)境:拷貝一份我們之前的e2s工程模板“19_UART_Receive_Send”,然后將工程文件夾重命名為“27_GPT_Basic_Timing”,最后再將它導(dǎo)入到我們的e2studio工作空間中。
對于Keil開發(fā)環(huán)境:拷貝一份我們之前的Keil工程模板“19_UART_Receive_Send”,然后將工程文件夾重命名為“27_GPT_Basic_Timing”,并進(jìn)入該文件夾里面雙擊Keil工程文件,打開該工程。
工程新建好之后,在工程根目錄的“src”文件夾下面新建“gpt”文件夾,再進(jìn)入該文件夾里面新建源文件和頭文件:“bsp_gpt_timing.c”和“bsp_gpt_timing.h”。工程文件結(jié)構(gòu)如下。
列表1:文件結(jié)構(gòu)
左右滑動(dòng)查看完整內(nèi)容
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,如下圖所示。

我們使用GPT0來實(shí)現(xiàn)定時(shí)和觸發(fā)中斷功能,需要修改的只有“General”和“Interrupts”部分,其他按照默認(rèn)即可,如下圖所示。

在上圖中我們可以將GPT模塊屬性進(jìn)行區(qū)域性地劃分為:“Common”、“General”、“Output”、“Input”、“Interrupts”、“Extra Features”、“Pins”這幾個(gè)部分。
本實(shí)驗(yàn)主要配置“General”和“Interrupts”這幾個(gè)部分的屬性,因此在這里會對它們進(jìn)行詳細(xì)講解。
“Common”部分的配置屬性:
表2:GPT屬性描述:“Common”部分

“General”部分的配置屬性:
表3:GPT屬性描述:“General”部分

“Interrupts”部分的配置屬性:
表4:GPT屬性描述:“Interrupts”部分

“Extra Features”部分的配置屬性:
表5:GPT屬性描述:“Extra Features”部分

27.6.2.3
GPT初始化函數(shù)
GPT初始化函數(shù)用于初始化GPT模塊,并且啟動(dòng)GPT定時(shí)器,該函數(shù)如下所示。
列表2:代碼清單27-1
GPT初始化函數(shù)
左右滑動(dòng)查看完整內(nèi)容
/* GPT 初始化函數(shù)*/
voidGPT_Timing_Init(void)
{
/* 初始化GPT0 模塊*/
R_GPT_Open(&g_timer_gpt0_ctrl, &g_timer_gpt0_cfg);
/* 啟動(dòng)GPT0 定時(shí)器*/
R_GPT_Start(&g_timer_gpt0_ctrl);
}
在GPT初始化函數(shù)里面,首先通過R_GPT_Open函數(shù)初始化GPT模塊,隨后調(diào)用R_GPT_Start函數(shù)來啟動(dòng)GPT定時(shí)器。
27.6.2.4
GPT中斷回調(diào)函數(shù)
我們在FSP配置里配置了GPT的中斷,溢出中斷優(yōu)先級為10,GPT中斷回調(diào)函數(shù)如下。
列表3:代碼清單27-2:GPT中斷回調(diào)函數(shù)
左右滑動(dòng)查看完整內(nèi)容
#include"led/bsp_led.h"
/* GPT 中斷回調(diào)函數(shù)*/
voidgpt0_timing_callback(timer_callback_args_t* p_args)
{
/* 定時(shí)器溢出事件*/
if(TIMER_EVENT_CYCLE_END == p_args->event)
{
/* 翻轉(zhuǎn)LED1 */
LED1_TOGGLE;//每秒翻轉(zhuǎn)一次
}
}
該中斷回調(diào)函數(shù)非常地簡單,直接在回調(diào)函數(shù)里面使用if語句判斷觸發(fā)中斷的事件是否是定時(shí)器溢出事件,若是定時(shí)器溢出事件則翻轉(zhuǎn)一次LED1引腳的電平。由于定時(shí)器被我們配置為1秒的計(jì)時(shí)周期,因此每1秒會溢出一次,控制LED1的引腳的電平會每秒鐘翻轉(zhuǎn)一次。
27.6.2.5
hal_entry入口函數(shù)
以啟明6M5開發(fā)板的RA6M5工程為例,hal_entry入口函數(shù)如下所示。
列表4:代碼清單27-3:hal_entry函數(shù)
左右滑動(dòng)查看完整內(nèi)容
/* 用戶頭文件包含*/
#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 調(diào)試串口初始化
GPT_Timing_Init();// GPT 初始化
printf("這是一個(gè)GPT 的基本定時(shí)功能實(shí)驗(yàn)
");
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
下載驗(yàn)證
編譯并下載到開發(fā)板后,復(fù)位板子讓程序運(yùn)行,然后可以觀察到板載LED1(紅色)每秒鐘翻轉(zhuǎn)一次狀態(tài),即以兩秒為周期在緩慢閃爍。
未完待續(xù)
-
瑞薩
+關(guān)注
關(guān)注
38文章
22516瀏覽量
91164 -
中斷
+關(guān)注
關(guān)注
5文章
919瀏覽量
43868 -
定時(shí)器
+關(guān)注
關(guān)注
23文章
3372瀏覽量
124446 -
GPT
+關(guān)注
關(guān)注
0文章
371瀏覽量
16956
原文標(biāo)題:實(shí)驗(yàn)1:基本定時(shí)功能——瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南(99)
文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之I2C讀寫EEPROM實(shí)驗(yàn)
瑞薩e2studio(1)----瑞薩芯片之搭建FSP環(huán)境
【RA-Eco-RA4M2開發(fā)板評測】+VS Code 下瑞薩 RA4M2 開發(fā)環(huán)境搭建與 GPIO 點(diǎn)燈實(shí)驗(yàn)教程
【瑞薩RA4系列開發(fā)板體驗(yàn)】開發(fā)環(huán)境搭建和新手點(diǎn)燈指南
【瑞薩RA4系列開發(fā)板體驗(yàn)】4. PWM驅(qū)動(dòng)LED
【瑞薩RA4系列開發(fā)板體驗(yàn)】10. 我的試用總結(jié)
【瑞薩RA4系列開發(fā)板體驗(yàn)】GPT定時(shí)器的基礎(chǔ)使用
【瑞薩RA4系列開發(fā)板體驗(yàn)】體驗(yàn)過程
【野火啟明6M5開發(fā)板體驗(yàn)】開箱+認(rèn)識開發(fā)板+資料
【有獎(jiǎng)直播預(yù)報(bào)名】瑞薩電子RA系列產(chǎn)品開發(fā)工具之FSP4.0.0新特性介紹
【視頻教程】瑞薩RA單片機(jī)FSP開發(fā)(3)FSP架構(gòu)-解釋Blinky架構(gòu)[上]
瑞薩電子RA系列微控制器的可擴(kuò)展性強(qiáng)的配置軟件包 (FSP)安裝下載與使用指南
瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之SPI通訊協(xié)議的結(jié)構(gòu)和功能
瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之使用GPT基本定時(shí)功能實(shí)驗(yàn)
評論