加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

瑞薩RA8系列教程 | RA8輸出PWM實(shí)現(xiàn)方法

10/09 12:55
1082
閱讀需 7 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

微信公眾號(hào)?| strongerHuang

PWMPulse Width Modulation,脈沖寬度調(diào)制。

單片機(jī)實(shí)現(xiàn)PWM輸出的方式有很多種,有通過IO延時(shí)翻轉(zhuǎn)實(shí)現(xiàn)的,比如:

while(1){  IO口高電平??Delay延時(shí)  IO口低電平??Delay延時(shí)}

這種方法和前面給大家分享的文章【通過RA8單片機(jī) SysTick 實(shí)現(xiàn)延時(shí)】有點(diǎn)類似,但這種方法缺陷也明顯,占用CPU資源,也存在誤差,特別是us級(jí)別誤差更明顯。

也有通過定時(shí)器中斷控制IO高低電平輸出實(shí)現(xiàn)的。

定時(shí)器中斷配置 ——>?啟動(dòng)定時(shí)器?——>?響應(yīng)中斷,控制IO高低電平···

當(dāng)然,本文通過,瑞薩RA8D1單片機(jī)通用 PWM 定時(shí)器(GPT,General PWM Timer)輸出PWM波形,這樣既避免了占用CPU資源,又避免了誤差(精度相對(duì)很高)。
下面手把手教大家基于e2 studio環(huán)境下,實(shí)現(xiàn)RA8單片機(jī)輸出PWM的方法。

準(zhǔn)備工作

1、下載并安裝e2 studio工具

下載地址,推薦瑞薩官方的GitHub:https://github.com/renesas/fsp/releases

我們這里基于Windows環(huán)境,安裝exe文件,基本根據(jù)提示信息一路next即可。

2、準(zhǔn)備RA8D1開發(fā)板

我們這里以瑞薩RA8D1單片機(jī)為例(當(dāng)然,其實(shí)RA系列單片機(jī)也類似):

RA8單片機(jī)PWM輸出方法

本文就瑞薩官方集成開發(fā)工具e2 studio,它是瑞薩單片機(jī)一站式編程工具,只需要?jiǎng)觿?dòng)鼠標(biāo)點(diǎn)一點(diǎn)就能創(chuàng)建一個(gè)單片機(jī)工程。

1、打開e2 studio創(chuàng)建PWM項(xiàng)目

我們命名項(xiàng)目名稱為:RA8D1_PWM

選擇對(duì)應(yīng)芯片型號(hào):R7FA8D1BEC

 

只需要?jiǎng)觿?dòng)鼠標(biāo)“點(diǎn)一點(diǎn)”,一個(gè)完整的工程就創(chuàng)建好了。

2、配置工程

我們使用RA8D1單片機(jī)通用PWM定時(shí)器(General PWM Timer)GPT4,引腳P301輸出PWM。

這里配置時(shí)鐘、添加GPT模塊以相關(guān)配置。

配置時(shí)鐘:GPT4使用?PCLKD?分頻作為時(shí)鐘源

配置引腳:我們使用GPT4的P301作為PWM輸出引腳。

新建定時(shí)器模塊:我們添加定時(shí)器模塊并配置相關(guān)屬性(配置常用參數(shù),其實(shí)默認(rèn)即可)。

3、添加源代碼

我們這里簡單添加一個(gè)gpt4模塊(源代碼文件),如圖:

bsp_gpt_pwm_output.c源代碼:

#include "bsp_gpt_pwm_output.h"
/* GPT初始化函數(shù) */void GPT_PWM_Init(void){    /* 初始化 GPT 模塊 */    R_GPT_Open(&g_timer_gpt4_ctrl, &g_timer_gpt4_cfg);        /* 啟動(dòng) GPT 定時(shí)器 */    R_GPT_Start(&g_timer_gpt4_ctrl);}
/** 設(shè)置PWM占空比    @param duty 占空比范圍:0~100 %*/void GPT_PWM_SetDuty(uint8_t duty){    timer_info_t info;    uint32_t current_period_counts;    uint32_t duty_cycle_counts;
    if (duty > 100)        duty = 100; //限制占空比范圍:0~100
    /* 獲得GPT的信息 */    R_GPT_InfoGet(&g_timer_gpt4_ctrl, &info);        /* 獲得計(jì)時(shí)器一個(gè)周期需要的計(jì)數(shù)次數(shù) */    current_period_counts = info.period_counts;        /* 根據(jù)占空比和一個(gè)周期的計(jì)數(shù)次數(shù)計(jì)算GTCCR寄存器的值 */    duty_cycle_counts = (uint32_t)(((uint64_t) current_period_counts * duty) / 100);
    /* 最后調(diào)用FSP庫函數(shù)設(shè)置占空比 */    R_GPT_DutyCycleSet(&g_timer_gpt4_ctrl, duty_cycle_counts, GPT_IO_PIN_GTIOCB);}

bsp_gpt_pwm_output.h頭代碼:

#ifndef __BSP_GPT_PWM_OUTPUT_H#define __BSP_GPT_PWM_OUTPUT_H#include "hal_data.h"
void GPT_PWM_Init(void);
void GPT_PWM_SetDuty(uint8_t duty);
#endif

我們這里只有兩個(gè)簡單函數(shù),在我們代碼中添加 GPT_PWM_Init 即可實(shí)現(xiàn)(配置中的)200KHz,占空比80%的PWM波形輸出。

4、演示效果

下圖是我們配置200KHz,占空比80%的PWM波形:

根據(jù)源碼,你能發(fā)現(xiàn),我們只需要初始化(配置好)PWM輸出,后面就不會(huì)占用CPU資源。

我們提供了一個(gè)簡單的接口,修改占空比,如果需要根據(jù)需求修改占空比,我們調(diào)用一下接口即可。比如我們修改占空比為60%:

當(dāng)然,更多參數(shù),我們可以根據(jù)自己情況封裝函數(shù)接口。

好了,本文就分享到這里,希望你=對(duì)你們有所幫助。

瑞薩電子

瑞薩電子

(RENESAS)于2003年4月1日—由日立制作所半導(dǎo)體部門和三菱電機(jī)半導(dǎo)體部門合并成立。RENESAS結(jié)合了日立與三菱在半導(dǎo)體領(lǐng)域方面的先進(jìn)技術(shù)和豐富經(jīng)驗(yàn),是無線網(wǎng)絡(luò)、汽車、消費(fèi)與工業(yè)市場設(shè)計(jì)制造嵌入式半導(dǎo)體的全球領(lǐng)先供應(yīng)商。創(chuàng)立日期2003年4月1日公司法人董事長&CEO伊藤達(dá)業(yè)務(wù)范圍單片機(jī)邏輯模擬等的系統(tǒng)LSI、分立半導(dǎo)體元件、SRAM等的存儲(chǔ)器開發(fā)、設(shè)計(jì)、制造、銷售、服務(wù)的提供。集團(tuán)成員44家公司(日本20家,日本以外24家)年度銷售額2006財(cái)年(截止至2007年3月):9526億日元(約83億美元)從業(yè)人員:26000人(全世界20個(gè)國家、43家公司)瑞薩科技是世界十大半導(dǎo)體芯片供應(yīng)商之一,在很多諸如移動(dòng)通信、汽車電子和PC/AV 等領(lǐng)域獲得了全球最高市場份額。瑞薩集成電路設(shè)計(jì)(北京)有限公司蘇州分公司(RDB-SU)是瑞薩科技全資子公司,2004年1月成立以來,現(xiàn)已擁有150多名優(yōu)秀工程師,承擔(dān)著家電和汽車電子領(lǐng)域MCU的一系列設(shè)計(jì)工作,并在2006年4月開始開發(fā)面向中國市場的MCU。

(RENESAS)于2003年4月1日—由日立制作所半導(dǎo)體部門和三菱電機(jī)半導(dǎo)體部門合并成立。RENESAS結(jié)合了日立與三菱在半導(dǎo)體領(lǐng)域方面的先進(jìn)技術(shù)和豐富經(jīng)驗(yàn),是無線網(wǎng)絡(luò)、汽車、消費(fèi)與工業(yè)市場設(shè)計(jì)制造嵌入式半導(dǎo)體的全球領(lǐng)先供應(yīng)商。創(chuàng)立日期2003年4月1日公司法人董事長&CEO伊藤達(dá)業(yè)務(wù)范圍單片機(jī)邏輯模擬等的系統(tǒng)LSI、分立半導(dǎo)體元件、SRAM等的存儲(chǔ)器開發(fā)、設(shè)計(jì)、制造、銷售、服務(wù)的提供。集團(tuán)成員44家公司(日本20家,日本以外24家)年度銷售額2006財(cái)年(截止至2007年3月):9526億日元(約83億美元)從業(yè)人員:26000人(全世界20個(gè)國家、43家公司)瑞薩科技是世界十大半導(dǎo)體芯片供應(yīng)商之一,在很多諸如移動(dòng)通信、汽車電子和PC/AV 等領(lǐng)域獲得了全球最高市場份額。瑞薩集成電路設(shè)計(jì)(北京)有限公司蘇州分公司(RDB-SU)是瑞薩科技全資子公司,2004年1月成立以來,現(xiàn)已擁有150多名優(yōu)秀工程師,承擔(dān)著家電和汽車電子領(lǐng)域MCU的一系列設(shè)計(jì)工作,并在2006年4月開始開發(fā)面向中國市場的MCU。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

作者黃工,從事嵌入式軟件開發(fā)工作8年有余,高級(jí)嵌入式軟件工程師,業(yè)余維護(hù)公眾號(hào)『strongerHuang』,分享嵌入式軟硬件、單片機(jī)、物聯(lián)網(wǎng)等內(nèi)容。