介紹
針對(duì)客戶(hù)的開(kāi)發(fā)需求,基于Keil的開(kāi)發(fā)環(huán)境,使用RA6M4開(kāi)發(fā)板,通過(guò)配置RASC設(shè)置相關(guān)配置,實(shí)現(xiàn)PWM觸發(fā)ADC組采集功能。
硬件準(zhǔn)備
準(zhǔn)備一塊RA6M4開(kāi)發(fā)板(CPK-RA6M4),芯片是用R7FA6M4AF3CFB,主頻200MHz,Pin腳是144pin,1MB內(nèi)存的,如下圖所示。

軟件部分
1打開(kāi)RASC.EXE文件

2填寫(xiě)工程名稱(chēng)和工程的保存位置,注意路徑中不要包含中文和空格,點(diǎn)擊Next。

3RASC支持IAR和Keil,在IDE Project Type選擇Keil,選擇芯片對(duì)應(yīng)型號(hào),點(diǎn)Next。

4選擇工程模板,具體如下圖,確認(rèn)無(wú)誤點(diǎn)擊Finish。

5工程新建完成后,出現(xiàn)下圖界面,此時(shí)可以確認(rèn)一下自己的配置信息是否正確。

6打開(kāi)Stacks,添加相關(guān)的代碼模塊。點(diǎn)擊New Stack-Timers-Timer,General PWM(r_gpt)。

7添加完成后,單擊PWM模塊。再點(diǎn)擊Properties打開(kāi)配置界面,再點(diǎn)擊Common,將Pin Output Support設(shè)置為Enabled。

8再點(diǎn)擊General,然后將Mode設(shè)置為PWM模式,Period為100,Period Unit為Microseconds。

9在Output中將GTIOCA Output Enabled設(shè)置為T(mén)rue。

10打開(kāi)Pins,選擇Peripherals-Timers:GPT-GPT0,Operation Mode選擇GTIOCA or GTIOCB,將GTIOC0A的引腳設(shè)置為P213。

11打開(kāi)Stacks,添加相關(guān)的代碼模塊。點(diǎn)擊New Stack-Analog-ADC (r_adc)。

12添加完成后,單擊ADC模塊。再點(diǎn)擊Properties打開(kāi)配置界面,再點(diǎn)擊General,將Mode設(shè)置為Group Scan,這時(shí)g_adc0 ADC (r_adc)會(huì)出現(xiàn)錯(cuò)誤,這里可以先不用理睬,后續(xù)設(shè)置完成后,就沒(méi)有錯(cuò)誤了。

13點(diǎn)擊Input 將Channel0、Channel1、Channel2打開(kāi)并在同一組A。

14點(diǎn)擊Interrupts,將Normal/Group A Trigger即觸發(fā)ADC采集觸發(fā)源設(shè)置為GPT0 CAPTURE COMPARE A (Compare match A),然后設(shè)置中斷回調(diào)函數(shù)名還有優(yōu)先級(jí)。

15打開(kāi)Pins,選擇Peripherals-Analog:ADC-ADC0,Operation Mode選擇Custom,設(shè)置AN000、AN001、AN002引腳為P000、P001、P002。

16打開(kāi)Stacks,添加相關(guān)的代碼模塊。點(diǎn)擊New Stack-System-Event Link Controller (r_elc)。

17添加ELC后ADC就不會(huì)有錯(cuò)誤了。

18配置完成后點(diǎn)擊右上角的三角按鈕(Generate Project Content),關(guān)閉RASC再打開(kāi)Keil生成的工程項(xiàng)目。

?

19打開(kāi)Keil-Customize Tools Menu,在Command設(shè)置RASC的路徑,在Initial Folder填寫(xiě)$P,在Arguments寫(xiě)入--device $D --compiler ARMv6 configuration.xml。

20如果需要打開(kāi)RASC進(jìn)行重新配置,需要在Keil的界面點(diǎn)擊Tools-RA Smart Configurator。

21打開(kāi)hal_entry.c,找到可以添加自己代碼的地方,添加相應(yīng)的應(yīng)用函數(shù)。

22定義相關(guān)的回調(diào)函數(shù)。

23在hal_entry.c文件中的void hal_entry(void)函數(shù)中添加相關(guān)的初始化代碼,初始化PWM、ADC、ELC,并且設(shè)置ELC去鏈接PWM觸發(fā)ADC的采集。

24在ADC的回調(diào)函數(shù)中添加斷點(diǎn),如果程序進(jìn)入斷點(diǎn)則說(shuō)明PWM已經(jīng)觸發(fā)ADC去完成采集。

25編譯并運(yùn)行程序,用邏輯分析儀查看PWM的波形,占空比為50%,說(shuō)明PWM功能正常。

26給P000輸入3.3v,P001懸空,P002接地,測(cè)試采集結(jié)果是否P000為4095,P001有懸空狀態(tài)下的電壓值,P002為0。
27測(cè)試結(jié)果正確,P000的值為0x0FFF即為4095,P001有值,P002的值為0。

28說(shuō)明PWM觸發(fā)ADC組采集功能正常使用了。
結(jié)論
以上就是根據(jù)客戶(hù)開(kāi)發(fā)需求,實(shí)現(xiàn)PWM觸發(fā)ADC組采集功能,通過(guò)該項(xiàng)目可以學(xué)會(huì)使用RASC在Keil環(huán)境下的新建項(xiàng)目如何配置一個(gè)新的外設(shè),如何調(diào)取相應(yīng)的函數(shù)庫(kù),以及如何基于RASC進(jìn)行應(yīng)用開(kāi)發(fā)。
審核編輯:湯梓紅
電子發(fā)燒友App














評(píng)論