一、实验目的
(1)熟悉adc和DMA
二、实验环境
Window10
服务器:windows
和服务器交互软件 winscp putty
Autosar Version: 4.2.2
Tresos studio 23.0
MCAL Version: S32K14X_MCAL4_2_RTM_HF8_1_0_1
Compiling environment:greenhill 201714
调试环境:ic5000
三、实验步骤
1.完成adc硬件触发adc
2.配置DMA通道、中断相关参数
3.工程中注册DMA中断
4.涉及到了mcl模块、adc模块、mcu模块、gpt模块、port模块
5.涉及到的中断 ADC中断或DMA中断 ,没用到GPT中断
四、DMA参数配置
1.配置DMA中断,设置中断enable
2.配置DMA instance (非必要设置,具体作用不明)
3.配置DMA Logical Channels
highest numbered master having the highest priority
4.配置adc
四、工程中注册DMA中断
参数如何而来,参照实验二,不要忘记extern声明中断处理函数。
五、实现代码
初始化部分
/* init Port */
Port_Init(&PortConfigSet);
/*init Mcl*/
Mcl_Init(&MclConfigSet_0);
IoHwAB_Init_Intterupt();
/* init Gpt */
Gpt_Init(&GptChannelConfigSet);
Gpt_EnableNotification(GptConf_GptChannelConfiguration_GptChannelConfiguration_0);
Adc_Init(&AdcConfigSet);
Adc_SetupResultBuffer(AdcGroup_0, AdcGroup_0_Res);
Adc_EnableGroupNotification(AdcGroup_0);
Adc_EnableHardwareTrigger(AdcGroup_0);
/* start timer */
Gpt_StartTimer(GptConf_GptChannelConfiguration_GptChannelConfiguration_0, 40000);
中断通知函数
FUNC(void, ADC_CODE) Adc_Adc12bsarv2_DmaTransferComplete0()
{
Adc_Adc12bsarv2_DmaEndGroupConversion((Adc_HwUnitType)ADC_UNIT_0);
}
六、验证
通过watch读取数据,观察数值变化。