/*****************头文件*************************/ #include "fsl_common.h" #include "fsl_port.h" #include "fsl_gpio.h" #include "adc_Interrupt.h" #include "fsl_adc16.h" uint32_t g_Adc16ConversionValue = 0; uint32_t g_Adc16Count = 0; /*****************ADC初始化*************************/ void ADC16_InterrputInit() //ADC初始化 { adc16_config_t adc16ConfigStruct; adc16_channel_config_t adc16ChannelConfigStruct; EnableIRQ(ADC0_IRQn); ADC16_GetDefaultConfig(&adc16ConfigStruct); adc16ConfigStruct.enableContinuousConversion = true; ADC16_Init(ADC0, &adc16ConfigStruct); ADC16_EnableHardwareTrigger(ADC0, false); /* Make sure the software trigger is used. */ adc16ChannelConfigStruct.channelNumber = 2u; adc16ChannelConfigStruct.enableInterruptOnConversionCompleted = true; /* Enable the interrupt. */ ADC16_SetChannelConfig(ADC0, 0u, &adc16ChannelConfigStruct); } uint32_t adc_ReturnValue() { return g_Adc16ConversionValue; } void ADC0_IRQHandler(void) { /* Read conversion result to clear the conversion completed flag. */ g_Adc16ConversionValue = ADC16_GetChannelConversionValue(ADC0, 0u); g_Adc16Count++; g_Adc16Count %= 1000; SDK_ISR_EXIT_BARRIER; }