先看看标准要求的ADC Module APIs:
1.void Adc_Init( const Adc_ConfigType * ConfigPtr) //初始化函数
2.Std_ReturnType Adc_SetupResultBuffer( Adc_GroupType Group, Adc_ValueGroupType* DataBufferPtr ) //准备用户空间用于存结果
3.void Adc_DeInit() //去初始化
4.void Adc_StartGroupConversion( Adc_GroupType Group) //开始软件转换
5.void Adc_StopGroupConversion( Adc_GroupType Group)//停止软件转换
6.Std_ReturnType Adc_ReadGroup( Adc_GroupType Group, Adc_ValueGroupType* DataBufferPtr ) //读取转换结果到用户空间
7.void Adc_EnableHardwareTrigger( Adc_GroupType Group ) //使能硬件触发转换
8.void Adc_DisableHardwareTrigger( Adc_GroupType Group ) //关闭硬件触发转换
9.void Adc_EnableGroupNotification( Adc_GroupType Group ) //开机通知
10.void Adc_DisableGroupNotification(Adc_GroupType Group ) //关闭通知
11.Adc_StatusType Adc_GetGroupStatus(Adc_GroupType Group ) //获取当前转换状态
12Adc_StreamNumSampleType Adc_GetStreamLastPointer( Adc_GroupType Group, Adc_ValueGroupType ** PtrToSamplePtr ) //获取最后一次转换的结果
13.void Adc_GetVersionInfo( Std_VersionInfoType* versioninfo ) //获取版本信息
不难看出提供的13个API分为两种调用流程:
case1:软件直接写寄存器开始或结束一组的转换,也就是所谓的软件触发转换
Adc_Init -> Adc_SetupResultBuffer -> Adc_StartGroupConversion -> Adc_ReadGroup -> Adc_StopGroupConversion
case2: 使能或关闭硬件触发,也就是所谓的硬件触发转换
Adc_Init -> Adc_SetupResultBuffer -> Adc_EnableHardwareTrigger -> Adc_ReadGroup -> Adc_DisableHardwareTrigger
=============================================================================================
下次再续。。