介绍 针对客户的开发需求,基于Keil的开发环境,使用RA6M4开发板,通过配置RASC设置相关配置,实现PWM触发ADC组采集功能。 硬件准备 准备一块RA6M4开发板(CPK-RA6M4),芯片是用R7FA6M4AF3CFB,主频200MHz,Pin脚是144pin,1MB内存的,如下图所示。 软件部分 1打开RASC.EXE文件 2填写工程名称和工程的保存位置,注意路径中不要包含中文和空格,点击Next。 3RASC支持IAR和Keil,在IDE Project Type选择Keil,选择芯片对应型号,点Next。 4选择工程模板,具体如下图,确认无误点击Finish。 5工程新建完成后,出现下图界面,此时可以确认一下自己的配置信息是否正确。 6打开Stacks,添加相关的代码模块。点击New Stack-Timers-Timer,General PWM(r_gpt)。 7添加完成后,单击PWM模块。再点击Properties打开配置界面,再点击Common,将Pin Output Support设置为Enabled。 8再点击General,然后将Mode设置为PWM模式,Period为100,Period Unit为Microseconds。 9在Output中将GTIOCA Output Enabled设置为True。 10打开Pins,选择Peripherals-Timers:GPT-GPT0,Operation Mode选择GTIOCA or GTIOCB,将GTIOC0A的引脚设置为P213。 11打开Stacks,添加相关的代码模块。点击New Stack-Analog-ADC (r_adc)。 12添加完成后,单击ADC模块。再点击Properties打开配置界面,再点击General,将Mode设置为Group Scan,这时g_adc0 ADC (r_adc)会出现错误,这里可以先不用理睬,后续设置完成后,就没有错误了。 13点击Input 将Channel0、Channel1、Channel2打开并在同一组A。 14点击Interrupts,将Normal/Group A Trigger即触发ADC采集触发源设置为GPT0 CAPTURE COMPARE A (Compare match A),然后设置中断回调函数名还有优先级。 15打开Pins,选择Peripherals-Analog:ADC-ADC0,Operation Mode选择Custom,设置AN000、AN001、AN002引脚为P000、P001、P002。 16打开Stacks,添加相关的代码模块。点击New Stack-System-Event Link Controller (r_elc)。 17添加ELC后ADC就不会有错误了。 18配置完成后点击右上角的三角按钮(Generate Project Content),关闭RASC再打开Keil生成的工程项目。
19打开Keil-Customize Tools Menu,在Command设置RASC的路径,在Initial Folder填写$P,在Arguments写入--device $D --compiler ARMv6 configuration.xml。 20如果需要打开RASC进行重新配置,需要在Keil的界面点击Tools-RA Smart Configurator。 21打开hal_entry.c,找到可以添加自己代码的地方,添加相应的应用函数。 22定义相关的回调函数。 23在hal_entry.c文件中的void hal_entry(void)函数中添加相关的初始化代码,初始化PWM、ADC、ELC,并且设置ELC去链接PWM触发ADC的采集。 24在ADC的回调函数中添加断点,如果程序进入断点则说明PWM已经触发ADC去完成采集。 25编译并运行程序,用逻辑分析仪查看PWM的波形,占空比为50%,说明PWM功能正常。 26给P000输入3.3v,P001悬空,P002接地,测试采集结果是否P000为4095,P001有悬空状态下的电压值,P002为0。 27测试结果正确,P000的值为0x0FFF即为4095,P001有值,P002的值为0。 28说明PWM触发ADC组采集功能正常使用了。 结论 以上就是根据客户开发需求,实现PWM触发ADC组采集功能,通过该项目可以学会使用RASC在Keil环境下的新建项目如何配置一个新的外设,如何调取相应的函数库,以及如何基于RASC进行应用开发。 审核编辑:汤梓红 (责任编辑:admin) |