现在的位置: 首页 > 综合 > 正文

AutoSAR ADC驱动实现解析

2014年01月23日 ⁄ 综合 ⁄ 共 1340字 ⁄ 字号 评论关闭

   先看看标准要求的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

=============================================================================================

下次再续。。

抱歉!评论已关闭.