主题中讨论的其他器件:SysConfig
大家好、
我观察到、如上所述、最多可连接16个独立可配置的模拟输入通道。 但是、在 SysConfig 中、我最多只能连接4个通道。 如果我想增加要配置的通道数量、我应该怎么做。 有人能尽快帮助我吗?

This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
我观察到、如上所述、最多可连接16个独立可配置的模拟输入通道。 但是、在 SysConfig 中、我最多只能连接4个通道。 如果我想增加要配置的通道数量、我应该怎么做。 有人能尽快帮助我吗?

您好、Santhosh:
与 MSPM0G 不同、MSPM0L 只有4个 MEMRES 寄存器。 这意味着您可以一次分配16个通道中的4个。 如果要在所有16个通道上进行测量、则需要在测量每组4个通道后重新配置通道分配和 MEMRES 寄存器。
解决这个问题的一种方法是克隆 SysConfig 创建的 ADC 设置代码并针对您需要的通道修改。 下面我复制了设置每个 MEMRES 和通道的行、以便您看到。 这不是最佳方法、而是实现这一目标的唯一方法。
DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_0,
DL_ADC12_INPUT_CHAN_0, DL_ADC12_REFERENCE_VOLTAGE_VDDA, DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0, DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED, DL_ADC12_TRIGGER_MODE_AUTO_NEXT, DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_1,
DL_ADC12_INPUT_CHAN_3, DL_ADC12_REFERENCE_VOLTAGE_VDDA, DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0, DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED, DL_ADC12_TRIGGER_MODE_AUTO_NEXT, DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_2,
DL_ADC12_INPUT_CHAN_0, DL_ADC12_REFERENCE_VOLTAGE_VDDA, DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0, DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED, DL_ADC12_TRIGGER_MODE_AUTO_NEXT, DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
DL_ADC12_configConversionMem(ADC12_0_INST, ADC12_0_ADCMEM_3,
DL_ADC12_INPUT_CHAN_0, DL_ADC12_REFERENCE_VOLTAGE_VDDA, DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0, DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED, DL_ADC12_TRIGGER_MODE_AUTO_NEXT, DL_ADC12_WINDOWS_COMP_MODE_DISABLED);您好、Dennis、
对迟交的答复表示歉意。 我一直在处理此操作、尝试通过中断检索 ADC 值。 在第一种开关情况 ADC_Count_0中、我将收到一个值4095 (12位)、但在 ADC_Count_1和 ADC_Count_2中、它将输出为零。 您能为我介绍一下我可能错过的任何内容吗?
static UINT16 ADC_Count_0;
static UINT16 ADC_Count_1;
static UINT16 ADC_Count_2;
void ADC12_0_INST_IRQHandler(void)
{
switch (DL_ADC12_getPendingInterrupt(ADC12_0_INST)) {
case DL_ADC12_IIDX_MEM0_RESULT_LOADED:
DL_ADC12_configConversionMem(ADC12_0_INST,
DL_ADC12_MEM_IDX_0,
DL_ADC12_INPUT_CHAN_5,
DL_ADC12_REFERENCE_VOLTAGE_VDDA,
DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0,
DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED,
DL_ADC12_TRIGGER_MODE_AUTO_NEXT,
DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
ADC_Count_0 = DL_ADC12_getMemResult(ADC12_0_INST,
DL_ADC12_MEM_IDX_0);
DL_ADC12_clearInterruptStatus(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED));
DL_ADC12_disableInterrupt(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED));
DL_ADC12_enableInterrupt(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM1_RESULT_LOADED));
break;
case DL_ADC12_IIDX_MEM1_RESULT_LOADED:
DL_ADC12_configConversionMem(ADC12_0_INST,
DL_ADC12_MEM_IDX_1,
DL_ADC12_INPUT_CHAN_3,
DL_ADC12_REFERENCE_VOLTAGE_VDDA,
DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0,
DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED,
DL_ADC12_TRIGGER_MODE_AUTO_NEXT,
DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
ADC_Count_1 = DL_ADC12_getMemResult(ADC12_0_INST,
DL_ADC12_MEM_IDX_1);
DL_ADC12_clearInterruptStatus(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM1_RESULT_LOADED));
DL_ADC12_disableInterrupt(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM1_RESULT_LOADED));
DL_ADC12_enableInterrupt(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED));
break;
case DL_ADC12_IIDX_MEM2_RESULT_LOADED:
DL_ADC12_configConversionMem(ADC12_0_INST,
DL_ADC12_MEM_IDX_2,
DL_ADC12_INPUT_CHAN_4,
DL_ADC12_REFERENCE_VOLTAGE_VDDA,
DL_ADC12_SAMPLE_TIMER_SOURCE_SCOMP0,
DL_ADC12_AVERAGING_MODE_DISABLED,
DL_ADC12_BURN_OUT_SOURCE_DISABLED,
DL_ADC12_TRIGGER_MODE_AUTO_NEXT,
DL_ADC12_WINDOWS_COMP_MODE_DISABLED);
ADC_Count_2 = DL_ADC12_getMemResult(ADC12_0_INST,
DL_ADC12_MEM_IDX_2);
DL_ADC12_clearInterruptStatus(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED));
DL_ADC12_disableInterrupt(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM2_RESULT_LOADED));
DL_ADC12_enableInterrupt(ADC12_0_INST,
(DL_ADC12_INTERRUPT_MEM0_RESULT_LOADED));
}
break;
default:
break;
}