#error Adc is configured to use Dma but the module is not enabled.\r
#endif\r
\r
-#if defined(CFG_MPC5668)\r
-#define ADC_0 ADC\r
-#endif\r
\r
#if defined(CFG_MPC5668)\r
-#define ADC_EOC_INT ADC_A_EOC\r
-#define ADC_ER_INT ADC_A_ERR\r
-#define ADC_WD_INT ADC_A_WD\r
+#define ADC0_EOC_INT ADC_A_EOC\r
+#define ADC0_ER_INT ADC_A_ERR\r
+#define ADC0_WD_INT ADC_A_WD\r
+#define ADC1_EOC_INT ADC_B_EOC\r
+#define ADC1_ER_INT ADC_B_ERR\r
+#define ADC1_WD_INT ADC_B_WD\r
#endif\r
\r
#define GET_HW_CONTROLLER(_controller) \\r
{\r
const Adc_ConfigType *AdcConfigPtr = NULL;\r
\r
- for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) {\r
- if(unit == AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId){\r
- AdcConfigPtr = &AdcGlobalConfigPtr[configId];\r
- break;\r
+ if(adcState == ADC_INIT){\r
+ for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) {\r
+ if(unit == AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId){\r
+ AdcConfigPtr = &AdcGlobalConfigPtr[configId];\r
+ break;\r
+ }\r
}\r
}\r
\r
boolean okToClear = TRUE;\r
\r
for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) {\r
- hwPtr = GET_HW_CONTROLLER(AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId);\r
const Adc_ConfigType *AdcConfigPtr = &AdcGlobalConfigPtr[configId];\r
\r
if (E_OK == Adc_CheckDeInit(adcState, AdcConfigPtr))\r
{\r
+ hwPtr = GET_HW_CONTROLLER(AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId);\r
for(Adc_GroupType group = (Adc_GroupType)0; group < AdcConfigPtr->nbrOfGroups; group++)\r
{\r
/* Set group status to idle. */\r
Adc_StreamNumSampleType Adc_GetStreamLastPointer(Adc_GroupType group, Adc_ValueGroupType** PtrToSamplePtr)\r
{\r
const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
-\r
Adc_StreamNumSampleType nofSample = 0;\r
- Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
\r
/** @req ADC216 */\r
/* Check for development errors. */\r
- if ( (E_OK == Adc_CheckGetStreamLastPointer (adcState, AdcConfigPtr, group)) &&\r
- (groupPtr->status->groupStatus != ADC_BUSY) )\r
+ if (E_OK == Adc_CheckGetStreamLastPointer (adcState, AdcConfigPtr, group))\r
{\r
- /* Set resultPtr to application buffer. */\r
- if(groupPtr->status->currSampleCount > 0){\r
- *PtrToSamplePtr = &groupPtr->status->resultBufferPtr[groupPtr->status->currSampleCount-1];\r
- }\r
+ Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
\r
- if ((ADC_CONV_MODE_ONESHOT == groupPtr->conversionMode) &&\r
- (ADC_STREAM_COMPLETED == groupPtr->status->groupStatus))\r
+ if (groupPtr->status->groupStatus != ADC_BUSY)\r
{\r
- /** @req ADC327. */\r
- groupPtr->status->groupStatus = ADC_IDLE;\r
- }\r
- else if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
- (ADC_ACCESS_MODE_STREAMING == groupPtr->accessMode) &&\r
- (ADC_STREAM_BUFFER_LINEAR == groupPtr->streamBufferMode) &&\r
- (ADC_STREAM_COMPLETED == groupPtr->status->groupStatus))\r
- {\r
- /** @req ADC327. */\r
- groupPtr->status->groupStatus = ADC_IDLE;\r
- }\r
- else if ( (ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
- ((ADC_STREAM_COMPLETED == groupPtr->status->groupStatus) ||\r
- (ADC_COMPLETED == groupPtr->status->groupStatus)) )\r
- {\r
- /* Restart continous mode, and reset result buffer */\r
- if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
- (ADC_STREAM_COMPLETED == groupPtr->status->groupStatus))\r
- {\r
- /* Start continous conversion again */\r
- Adc_StartGroupConversion(group);\r
- }\r
- /** @req ADC326 */\r
- /** @req ADC328 */\r
+ /* Set resultPtr to application buffer. */\r
+ if(groupPtr->status->currSampleCount > 0){\r
+ *PtrToSamplePtr = &groupPtr->status->resultBufferPtr[groupPtr->status->currSampleCount-1];\r
+ }\r
+\r
+ if ((ADC_CONV_MODE_ONESHOT == groupPtr->conversionMode) &&\r
+ (ADC_STREAM_COMPLETED == groupPtr->status->groupStatus))\r
+ {\r
+ /** @req ADC327. */\r
+ groupPtr->status->groupStatus = ADC_IDLE;\r
+ }\r
+ else if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
+ (ADC_ACCESS_MODE_STREAMING == groupPtr->accessMode) &&\r
+ (ADC_STREAM_BUFFER_LINEAR == groupPtr->streamBufferMode) &&\r
+ (ADC_STREAM_COMPLETED == groupPtr->status->groupStatus))\r
+ {\r
+ /** @req ADC327. */\r
+ groupPtr->status->groupStatus = ADC_IDLE;\r
+ }\r
+ else if ( (ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
+ ((ADC_STREAM_COMPLETED == groupPtr->status->groupStatus) ||\r
+ (ADC_COMPLETED == groupPtr->status->groupStatus)) )\r
+ {\r
+ /* Restart continous mode, and reset result buffer */\r
+ if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
+ (ADC_STREAM_COMPLETED == groupPtr->status->groupStatus))\r
+ {\r
+ /* Start continous conversion again */\r
+ Adc_StartGroupConversion(group);\r
+ }\r
+ /** @req ADC326 */\r
+ /** @req ADC328 */\r
+ }\r
+ else{/* Keep status. */}\r
}\r
- else{/* Keep status. */}\r
+ else\r
+ {\r
+ /* Some condition not met */\r
+ *PtrToSamplePtr = NULL;\r
+ }\r
}\r
else\r
{\r
Std_ReturnType returnValue = E_OK;\r
uint8_t channel;\r
const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
- Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
\r
if (E_OK == Adc_CheckReadGroup (adcState, AdcConfigPtr, group))\r
{\r
+ Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
+\r
/* Copy the result to application buffer. */\r
for (channel = 0; channel < groupPtr->numberOfChannels; channel++)\r
{\r
void Adc_StartGroupConversion (Adc_GroupType group)\r
{\r
const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
- volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
-\r
- Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
\r
/* Run development error check. */\r
if (E_OK == Adc_CheckStartGroupConversion (adcState, AdcConfigPtr, group))\r
{\r
+ volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
+\r
+ Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
+\r
/* Disable trigger normal conversions for ADC0 */\r
hwPtr->MCR.B.NSTART = 0;\r
\r
void Adc_StopGroupConversion (Adc_GroupType group)\r
{\r
const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
- volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
\r
if (E_OK == Adc_CheckStopGroupConversion (adcState, AdcConfigPtr, group))\r
{\r
+ volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
+\r
/* Disable trigger normal conversions for ADC0 */\r
hwPtr->MCR.B.NSTART = 0;\r
\r