void AdcInit(void){ ADC12_B_initParam FsiAdc; ADC12_B_configureMemoryParam CMOLG; ADC12_B_configureMemoryParam VDO; ADC12_B_configureMemoryParam TempSensor; DMA_initParam AdcDMA; FsiAdc.clockSourceDivider = ADC12_B_CLOCKDIVIDER_1; FsiAdc.clockSourcePredivider = ADC12_B_CLOCKPREDIVIDER__1; FsiAdc.clockSourceSelect = ADC12_B_CLOCKSOURCE_ADC12OSC; FsiAdc.internalChannelMap = ADC12_B_TEMPSENSEMAP;//ADC12_B_NOINTCH; FsiAdc.sampleHoldSignalSourceSelect = ADC12_B_SAMPLEHOLDSOURCE_SC; ADC12_B_init(ADC12_B_BASE,&FsiAdc); ADC12_B_enable(ADC12_B_BASE); ADC12_B_setupSamplingTimer(ADC12_B_BASE, ADC12_B_CYCLEHOLD_4_CYCLES, ADC12_B_CYCLEHOLD_4_CYCLES, ADC12_B_MULTIPLESAMPLESENABLE); ADC12_B_setResolution(ADC12_B_BASE, ADC12_B_RESOLUTION_12BIT); CMOLG.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE; CMOLG.endOfSequence = ADC12_B_NOTENDOFSEQUENCE; CMOLG.inputSourceSelect = ADC12_B_INPUT_A13; CMOLG.memoryBufferControlIndex = ADC12_B_MEMORY_0; CMOLG.refVoltageSourceSelect = ADC12_B_VREFPOS_EXTPOS_VREFNEG_EXTNEG; CMOLG.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE; ADC12_B_configureMemory(ADC12_B_BASE, &CMOLG); VDO.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE; VDO.endOfSequence = ADC12_B_NOTENDOFSEQUENCE;//ADC12_B_ENDOFSEQUENCE; VDO.inputSourceSelect = ADC12_B_INPUT_A14; VDO.memoryBufferControlIndex = ADC12_B_MEMORY_1; VDO.refVoltageSourceSelect = ADC12_B_VREFPOS_EXTPOS_VREFNEG_EXTNEG; VDO.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE; ADC12_B_configureMemory(ADC12_B_BASE, &VDO); TempSensor.differentialModeSelect = ADC12_B_DIFFERENTIAL_MODE_DISABLE; TempSensor.endOfSequence = ADC12_B_ENDOFSEQUENCE; TempSensor.inputSourceSelect = ADC12_B_INPUT_TCMAP; TempSensor.memoryBufferControlIndex = ADC12_B_MEMORY_2; TempSensor.refVoltageSourceSelect = ADC12_B_VREFPOS_EXTPOS_VREFNEG_EXTNEG; TempSensor.windowComparatorSelect = ADC12_B_WINDOW_COMPARATOR_DISABLE; ADC12_B_configureMemory(ADC12_B_BASE, &TempSensor); // while(REFCTL0 & REFGENBUSY); // If ref generator busy, WAIT // REFCTL0 |= REFVSEL_2 + REFON; // Enable internal 1.2V reference AdcDMA.channelSelect = DMA_CHANNEL_2; AdcDMA.transferModeSelect = DMA_TRANSFER_REPEATED_BLOCK; AdcDMA.transferSize = 3; AdcDMA.transferUnitSelect = DMA_SIZE_SRCWORD_DSTWORD; AdcDMA.triggerSourceSelect = DMA_TRIGGERSOURCE_26; AdcDMA.triggerTypeSelect = DMA_TRIGGER_RISINGEDGE; DMA_init(&AdcDMA); DMA_setSrcAddress(DMA_CHANNEL_2, (uint32_t) &ADC12MEM0, DMA_DIRECTION_INCREMENT); DMA_setDstAddress(DMA_CHANNEL_2, (uint32_t) AdcRawCounts, DMA_DIRECTION_INCREMENT); DMA_disableTransferDuringReadModifyWrite(); DMA_enableRoundRobinPriority(); DMA_enableInterrupt(DMA_CHANNEL_2); DMA_enableTransfers(DMA_CHANNEL_2); DMA_startTransfer(DMA_CHANNEL_2); }