是如下代码吗?哪里可以看出来是多通道依转换呢?
如果启动呢?启动后第一个转换的是什么通道?
- /* Set the ADC internal sampling time, input mode as single-end and enable the A/D converter */
- EADC_Open(EADC, EADC_CTL_DIFFEN_SINGLE_END);
- EADC_SetInternalSampleTime(EADC, 6);
- /* Configure the sample 4 module for analog input channel 0 and enable ADINT0 trigger source */
- EADC_ConfigSampleModule(EADC, 4, EADC_ADINT0_TRIGGER, 0);
- /* Configure the sample 5 module for analog input channel 1 and enable ADINT0 trigger source */
- EADC_ConfigSampleModule(EADC, 5, EADC_ADINT0_TRIGGER, 1);
- /* Configure the sample 6 module for analog input channel 2 and enable ADINT0 trigger source */
- EADC_ConfigSampleModule(EADC, 6, EADC_ADINT0_TRIGGER, 2);
- /* Configure the sample 7 module for analog input channel 3 and enable ADINT0 trigger source */
- EADC_ConfigSampleModule(EADC, 7, EADC_ADINT0_TRIGGER, 3);
- /* Clear the A/D ADINT0 interrupt flag for safe */
- EADC_CLR_INT_FLAG(EADC, 0x1);
- /* Enable the sample module 7 interrupt */
- EADC_ENABLE_INT(EADC, 0x1);//Enable sample module A/D ADINT0 interrupt.
- EADC_ENABLE_SAMPLE_MODULE_INT(EADC, 0, (0x1 << 7));//Enable sample module 7 interrupt.
- NVIC_EnableIRQ(ADC00_IRQn);
- /* Reset the ADC indicator and trigger sample module 7 to start A/D conversion */
- g_u32AdcIntFlag = 0;
- g_u32COVNUMFlag = 0;
- EADC_START_CONV(EADC, (0x1 << 7));
- /* Wait EADC interrupt (g_u32AdcIntFlag will be set at IRQ_Handler function) */
- while(g_u32AdcIntFlag == 0);
- /* Reset the EADC interrupt indicator */
- g_u32AdcIntFlag = 0;
- /* Wait EADC interrupt (g_u32AdcIntFlag will be set at IRQ_Handler function) */
- while(g_u32AdcIntFlag == 0);
- /* Reset the EADC interrupt indicator */
- g_u32AdcIntFlag = 0;
- /* Disable the sample module 7 interrupt */
- EADC_DISABLE_SAMPLE_MODULE_INT(EADC, 0, (0x1 << 7));
- /* Get the conversion result of the sample module */
- for(u32SAMPLECount = 0; u32SAMPLECount < 4; u32SAMPLECount++)
- i32ConversionData[u32SAMPLECount] = EADC_GET_CONV_DATA(EADC, (u32SAMPLECount + 4));
- /* Wait conversion done */
- while(EADC_GET_DATA_VALID_FLAG(EADC, 0xF0) != 0xF0);
- /* Get the conversion result of the sample module */
- for(u32SAMPLECount = 4; u32SAMPLECount < 8; u32SAMPLECount++)
- i32ConversionData[u32SAMPLECount] = EADC_GET_CONV_DATA(EADC, u32SAMPLECount);
- for(g_u32COVNUMFlag = 0; (g_u32COVNUMFlag) < 8; g_u32COVNUMFlag++)
- printf("Conversion result of channel %d: 0x%X (%d)\n", (g_u32COVNUMFlag % 4), i32ConversionData[g_u32COVNUMFlag], i32ConversionData[g_u32COVNUMFlag]);
|