最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

瑞薩e2studio(12)----外部中斷&定時器配置輸入捕獲測量頻率

2022-10-27 15:10 作者:記帖  | 我要投稿

概述

本篇文章主要介紹如何使用e2studio對瑞薩單片機(jī)外部中斷進(jìn)行輸入捕獲,同時通過定時器計算其頻率和占空比,同時輸入一個PWM驗證是否正確。
需要樣片的可以加Q_QUN申請:6_15061293。

視頻教學(xué)

聽不到聲音的請點(diǎn)擊跳轉(zhuǎn)進(jìn)行觀看。


csdn課程

csdn課程更加詳細(xì)。
https://edu.csdn.net/course/detail/36131

完整代碼下載

硬件準(zhǔn)備

首先需要準(zhǔn)備一個開發(fā)板,這里我準(zhǔn)備的是芯片型號R7FAM2AD3CFP的開發(fā)板:

在這里插入圖片描述

開發(fā)板鏈接

在這里插入圖片描述

新建工程

在這里插入圖片描述

工程模板

在這里插入圖片描述

保存工程路徑

在這里插入圖片描述

芯片配置

本文中使用R7FA4M2AD3CFP來進(jìn)行演示。

在這里插入圖片描述

工程模板選擇

在這里插入圖片描述

時鐘設(shè)置

開發(fā)板上的外部高速晶振為12M,需要修改XTAL為12M.

在這里插入圖片描述

時鐘配置

開發(fā)板上的外部高速晶振為12M,需要修改XTAL為12M.

在這里插入圖片描述

uart配置

點(diǎn)擊Stacks->New Stack->Driver->Connectivity -> UART Driver on r_sci_uart。

在這里插入圖片描述

uart屬性配置

在這里插入圖片描述

回調(diào)函數(shù)user_uart_callback ()

發(fā)送完畢可以用UART_EVENT_TX_COMPLETE進(jìn)行判斷。


在這里插入圖片描述

設(shè)置e2studio堆棧

在這里插入圖片描述

e2studio的重定向printf設(shè)置

在這里插入圖片描述

e2studio的重定向printf設(shè)置

C++ 構(gòu)建->設(shè)置->GNU ARM Cross C Linker->Miscellaneous去掉Other linker flags中的 “--specs=rdimon.specs”

在這里插入圖片描述

printf輸出重定向到串口

打印最常用的方法是printf,所以要解決的問題是將printf的輸出重定向到串口,然后通過串口將數(shù)據(jù)發(fā)送出去。
注意一定要加上頭文件#include <stdio.h>

選擇定時器

RA MCU 有兩個定時器外設(shè):通用 PWM 定時器 (GPT) 和異步通用定時器 (AGT)。在它們之間進(jìn)行選擇時,請考慮以下因素:

在這里插入圖片描述

時鐘源在這設(shè)置的是PCKLD 50M 。
可以通過修改該頻率來修改占空比頻率。

在這里插入圖片描述

PWM(脈沖寬度調(diào)制)

脈沖寬度調(diào)制是一種模擬控制方式,根據(jù)相應(yīng)載荷的變化來調(diào)制晶體管基極或MOS管柵極的偏置,來實(shí)現(xiàn)晶體管或MOS管導(dǎo)通時間的改變,從而實(shí)現(xiàn)開關(guān)穩(wěn)壓電源輸出的改變。這種方式能使電源的輸出電壓在工作條件變化時保持恒定,是利用微處理器的數(shù)字信號對模擬電路進(jìn)行控制的一種非常有效的技術(shù)。脈沖寬度調(diào)制是利用微處理器的數(shù)字輸出來對模擬電路進(jìn)行控制的一種非常有效的技術(shù),廣泛應(yīng)用在從測量、通信到功率控制與變換的許多領(lǐng)域中。
在瑞薩RA系列MCU中有兩種定時器,一種是通用PWM定時器GPT,另外一種是異步通用定時器AGT。
頻率=主頻/period
+占空比=cycle/period

在這里插入圖片描述

定時器配置

點(diǎn)擊Stacks->New Stack->Driver->Timers->Timer Driver on r_gpt。

在這里插入圖片描述

定時器輸出PWM配置

設(shè)置PWM輸出,輸出頻率為1kHz,占空比為80%。

在這里插入圖片描述


定時器做計數(shù)器配置

點(diǎn)擊Stacks->New Stack->Driver->Timers->Timer Driver on r_gpt。

設(shè)置定時器制作計數(shù)器配置,由于不需要對上升沿和下降沿進(jìn)行捕獲,故只需配置為計數(shù)模式即可。


點(diǎn)擊Stacks->New Stack->Driver->Input -> External IRQ Driver on r_icu 。

IRQ配置

點(diǎn)擊Stacks->New Stack->Driver->Input -> External IRQ Driver on r_icu 。

在這里插入圖片描述

IRQ屬性配置

由于需要計算頻率和占空比,故需要設(shè)置觸發(fā)方式為雙邊觸發(fā)的模式。

在這里插入圖片描述

工程文件

打開hal_entry.c,可以看到在hal_entry函數(shù)內(nèi),注釋著可以在這輸入自己的代碼。

在這里插入圖片描述

占空比與頻率計算

在這里插入圖片描述


占空比=(t1-t0)/(t2-t0)
頻率=(t2-t0)/時鐘頻率= =(t2-t0)/50M


回調(diào)函數(shù)exit4_callback()

由于設(shè)置了上升沿和下降沿都會進(jìn)入回調(diào)函數(shù)中,故需要判斷引腳電平來判斷是屬于高電平還是低電平。

周期需要2個上升沿去判斷,設(shè)定第一個上升沿time_flag由0變?yōu)?,則第二個上升沿則為time_flag由1變?yōu)?.

計算周期需要注意定時器周期計數(shù)器溢出,若存在time_flag= 0->1讀取的計數(shù)值大于time_flag= 1->0讀取的計數(shù)值,則一個周期為g_capture_num=current_period_counts+g_capture_num1-g_capture_num0。
若沒有溢出,則g_capture_num=g_capture_num1-g_capture_num0。

在這里插入圖片描述


頻率則需要計算下降沿到time_flag=1的一個周期,在除以g_capture_num(48M)。
計算頻率需要注意定時器周期計數(shù)器溢出,若存在time_flag= 0->1讀取的計數(shù)值大于g_capture_duty_cycle_num0讀取的計數(shù)值,則一個周期為g_capture_num=current_period_counts+g_capture_num1-g_capture_num0。
若沒有溢出,則g_capture_duty_cycle_num=g_capture_duty_cycle_num0-g_capture_num0。


在這里插入圖片描述

完整代碼

https://download.csdn.net/download/qq_24312945/86509099

最后

以上的代碼會在Q群里分享。QQ群:615061293。
或者關(guān)注微信公眾號『記帖』,持續(xù)更新文章和學(xué)習(xí)資料,可加作者的微信交流學(xué)習(xí)!

在這里插入圖片描述

結(jié)果演示

頻率1K 占空比80%

在這里插入圖片描述


串口打印。

在這里插入圖片描述


頻率4K 占空比30%


在這里插入圖片描述


串口打印。

在這里插入圖片描述



瑞薩e2studio(12)----外部中斷&定時器配置輸入捕獲測量頻率的評論 (共 條)

分享到微博請遵守國家法律
米林县| 旺苍县| 永兴县| 临朐县| 扎囊县| 韶关市| 连山| 东安县| 凌海市| 武汉市| 浮山县| 甘南县| 澄迈县| 临海市| 宜兰县| 汝南县| 洞头县| 进贤县| 综艺| 沂水县| 家居| 娄烦县| 固始县| 科技| 漳平市| 太白县| 白城市| 云安县| 和田市| 林甸县| 平顶山市| 开封市| 林周县| 昌黎县| 大埔区| 淮安市| 舞阳县| 百色市| 厦门市| 康马县| 尖扎县|