请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号: MSPM0C1104
当使用来自计时器的事件触发器时、如果我将 SAMPMODE (CTL1 位 20) 位设置为 AUTO、当 ADC 获得触发信号时、它将始终对 ADC 进行采样、永远不会停止转换。 它不会在每个触发事件发生时执行一次。 如果我将该位设置为 MANUAL、则触发仅在发生第一个事件时发生、而不会再次触发。 “那你打算怎么办?“ 以下是我的设置配置:
/* ADC12_0 初始化*/
静态常量 DL_ADC12_ClockConfig gADC12_0ClockConfig ={
//.clockSel = DL_ADC12_clock_SYSOSC、
.clockSel = DL_ADC12_clock_ULPCLK、
divideRatio = DL_ADC12_clock_divide_8、
.freqRange = DL_ADC12_clock_FREQ_RANGE_20_TO_24、
};
DL_ADC12_setClockConfig (ADC12_0_INST、(DL_ADC12_ClockConfig *)&gADC12_0ClockConfig);
DL_ADC12_initSingleSample (ADC12_0_INST、
DL_ADC12_REPEAT_MODE_ENABLED、
DL_ADC12_SAMPLING_SOURCE_AUTO、
ADC12_CTL1_TRIGSRC_EVENT、
DL_ADC12_SAMP_CONV_RES_12_BIT、 //12 位分辨率
DL_ADC12_SAMP_CONV_DATA_FORMAT_unsigned);
DL_ADC12_configConversionMem (ADC12_0_INST、
ADC12_0_ADCMEM_0
DL_ADC12_INPUT_CHAN_1、 /*DL_ADC_INPUT_CHAN_x — 将 x 设置为 ADC 通道*/
DL_ADC12_REFERENCE_VOLTAGE_INTREF、
DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0;
DL_ADC12_AVERAING_MODE_DISABLED、
DL_ADC12_BURN_OUT_SOURCE_DISABLED、
DL_ADC12_TRIG_SRC_EVENT、 // 1 =硬件=事件触发器
DL_ADC12_Windows_COMP_MODE_DISABLED);
DL_ADC12_setPowerDownMode (ADC12_0_INST、DL_ADC12_POWER_DOWN_MODE_MANUAL);
DL_ADC12_setSampleTime0 (ADC12_0_INST、375);
DL_ADC12_setSubscriberChanID (ADC0、ADC12_0_INST_SUB_CH); //设置订阅者通道 ID
//DL_ADC12_setSubscriberChanID (ADC0、1); //设置订阅者通道 ID
gADCOffset = DL_ADC12_getADCOffsetCalibration (ADC12_0_ADCMEM_0_REF_VOLTAGE_V);
/*启用 ADC12 中断*/
DL_ADC12_clearInterruptStatus (ADC12_0_INST、(DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED);
DL_ADC12_enableInterrupt (ADC12_0_INST、(DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED);
NVIC_EnableIRQ (ADC12_0_INST_INT_IRQN);
DL_ADC12_enableConversions (ADC12_0_INST);
DL_VREF_enablePower (VREF);
DELAY_CYCLES (POWER_STARTUP_DELAY);
静态常量 DL_VREF_ClockConfig gVREFClockConfig ={
.clockSel = DL_VREF_clock_BUSCLK、
.divideRatio = DL_VREF_clock_sdivide_1、
};
