主题中讨论的其他器件:SysConfig、 LM4040
工具与软件:
与其他线程类似、我只返回0x0000。
我已经把 POWERDOWN 模式设置为手动模式、并且延长了采样周期。
SYSCFG_DL_init ();
NVIC_EnableIRQ (ADC12_0_INST_INT_IRQN);
NVIC_EnableIRQ (ADC12_1_INST_INT_IRQN);
forever (
DL_ADC12_enableConversions (ADC12_1_INST);//?? 是否需要在每次转换后再次执行此操作? 没有获得第二次转换、因此添加了
DL_ADC12_startConversion (ADC12_1_INST);
gStateAdc[1]= adcBusy;
while (gStateAdc[1]!=adcComplete)
//在中断之后才能到达此点:DL_ADC12_IIDX_MEM4_Result_Loaded
for (uint16_t delay=0;delay<0xF000;delay++)_NOP ();//这是调试代码、因为 Janz Bai 质疑是否有足够的时间来获取任何值。
gRegSpace[REG_AdcAmp0]= DL_ADC12_getMemResult (ADC12_1_INST、DL_ADC12_MEM_IDX_0);
gRegSpace[REG_AdcAmp1]= DL_ADC12_getMemResult (ADC12_1_INST、DL_ADC12_MEM_IDX_1);
gRegSpace[REG_AdcAmp2]= DL_ADC12_getMemResult (ADC12_1_INST、DL_ADC12_MEM_IDX_2);
gRegSpace[REG_AdcAmp3]= DL_ADC12_getMemResult (ADC12_1_INST、DL_ADC12_MEM_IDX_3);
gRegSpace[REG_Adc48v ]= DL_ADC12_getMemResult (ADC12_1_INST、DL_ADC12_MEM_IDX_4);
)
void ADC12_1_INST_IRQHandler (void)
{
DL_ADC12_IIDX 挂起中断= DL_ADC12_getPendingInterrupt (ADC12_1_INST);
开关(PendingInterrupt){
案例 DL_ADC12_IIDX_MEM4_RESULT_LOADED:
//DL_ADC12_stopConversion (ADC12_1_INST);
//DL_ADC12_disableConversions (ADC12_1_INST);
gStateAdc[1]= adcComplete;//停止转换后更改状态
休息;
}
我确实获得了中断、但每次转换(包括第一个转换)都是值0x0000