#include "IfxCpu.h"
#include "IfxScuWdt.h"
#include "IfxVadc_Adc.h"
#include "Ifx_Types.h"
IfxCpu_syncEvent cpuSyncEvent = 0;
IfxVadc_Adc vadc;
IfxVadc_Adc_Group adcGroup;
int core0_main(void) {
IfxCpu_enableInterrupts();
IfxScuWdt_disableCpuWatchdog(IfxScuWdt_getCpuWatchdogPassword());
IfxScuWdt_disableSafetyWatchdog(IfxScuWdt_getSafetyWatchdogPassword());
IfxCpu_emitEvent(&cpuSyncEvent);
IfxCpu_waitEvent(&cpuSyncEvent, 1);
IfxVadc_Adc_Config adcConfig;
IfxVadc_Adc_initModuleConfig(&adcConfig, &MODULE_VADC);
IfxVadc_Adc_initModule(&vadc, &adcConfig);
IfxVadc_Adc_GroupConfig adcGroupConfig;
IfxVadc_Adc_initGroupConfig(&adcGroupConfig, &vadc);
adcGroupConfig.groupId = IfxVadc_GroupId_0;
adcGroupConfig.master = adcGroupConfig.groupId;
adcGroupConfig.arbiter.requestSlotBackgroundScanEnabled = TRUE;
adcGroupConfig.backgroundScanRequest.autoBackgroundScanEnabled = TRUE;
adcGroupConfig.backgroundScanRequest.triggerConfig.gatingMode
= IfxVadc_GatingMode_always;
IfxVadc_Adc_initGroup(&adcGroup, &adcGroupConfig);
IfxVadc_Adc_ChannelConfig adcChannelConfig;
IfxVadc_Adc_Channel adcChannel;
IfxVadc_Adc_initChannelConfig(&adcChannelConfig, &adcGroup);
adcChannelConfig.channelId = (IfxVadc_ChannelId)(0);
adcChannelConfig.resultRegister = (IfxVadc_ChannelResult)(0);
adcChannelConfig.backgroundChannel = TRUE;
IfxVadc_Adc_initChannel(&adcChannel, &adcChannelConfig);
unsigned channels = (1 << adcChannelConfig.channelId);
unsigned mask = channels;
IfxVadc_Adc_setBackgroundScan(&vadc, &adcGroup, channels, mask);
IfxVadc_Adc_startBackgroundScan(&vadc);
while(1) {
Ifx_VADC_RES conversionResult;
do {
conversionResult = IfxVadc_Adc_getResult(&adcChannel);
} while(! conversionResult.B.VF);
uint32 actual = conversionResult.B.RESULT;
}
return 1;
}