您好!
我使用了提供的 Project Explorer 示例的混合、以通过命令重复单次转换。
GPIO 引脚上的输入电压 为~ 1VDC。
我看到的是、如果我命令每次测量大约测量一秒、 每个测量值 的返回值都会减小。
如果我在两次测量之间等待几秒钟、我会看到完整的1 VDC。
测量之间是否需要某种恢复时间?
我将尝试剪切并粘贴以下感兴趣的代码:
/*
************------------------------------------------------------------------------------------------------
*
int a2d_init (void)
{
int status =0;
/*
*从 TI Resource Explorer 修改的示例、adc14_single_conversion 重复
*浮点初始化已移至 REU_init ()
*
*此例程中的某些内容至关重要、必须在每次测量之前调用
*
MAP_REF_A_setReferenceVoltage (REF_A_VREF2_5V);
map_REF_A_enableReferenceVoltage();
/*初始化 ADC (MCLK/1/4)*/
MAP_ADC14_enableModule();
/* ADC_NOROUTE =映射到外部引脚*/
MAP_ADC14_initModule (ADC_CLOCKSOURCE_MCLK、ADC_PREDIVIDER_1、ADC_DIVIDER_4、ADC_NOROUTE);
/*启用中断*/
MAP_ADC14_enableInterrupt (ADC_INT0);
MAP_Interrupt_enableInterrupt (INT_ADC14);
MAP_Interrupt_enableMaster();
//在此处配置 NOR 触发器。
退货状态;
}//结束 a2d_init
int a2d_set_get (int 端口、int 引脚、uint16_t * adc_valp)
{
int status =0;
int ii;
a2d_f = false; //请参阅 ADC14_IRQHandler ()
a2d_init();
/*配置 GPIO (5.1 A4)*/
MAP_GPIO_setPeripheralModuleFunctionInputPin (端口、引脚、
GPIO_TICE_MODULE_FUNCTION);
/*配置 ADC 内存*/
MAP_ADC14_configureSingleSampleMode (ADC_MEM0、TRUE);
MAP_ADC14_configureConversionMemory (ADC_MEM0、ADC_VREFPS_AVCC_VREFNEG_VSS、
ADC_INPUT_A0、false);
/*配置采样计时器*/
MAP_ADC14_enableSampleTimer (ADC_MANUAL_DEACation);
/*启用/切换转换*/
MAP_ADC14_enableConversion();
MAP_ADC14_toggleConversionTrigger ();
for (ii = 0;ii < 50;ii +) //循环等待完成
{
if (a2d_f) //在中断处理程序中设置互斥量
中断;
代尔马女士(100);
}
如果(!a2d_f)
{
状态=-1; //从未触发
sprintf (g_info、"A/D 从未触发。\r\n ");
if (g_uartbase!= 0) //如果通信路径已初始化
{
putUsart (g_info); //输出到已知路径
}
其他
{
putUsartSel (1、0、g_info); //还有谁在听?
putUsartSel (3、0、g_info);
}
}
其他
{
*ADC_valp = curADCResult; //在中断处理程序中设置的值
}
退货状态;
}//结束 a2d_set_get
void ADC14_IRQHandler (void)
{
uint64_t status = MAP_ADC14_getEnabableInterruptStatus();
MAP_ADC14_clearInterruptFlag (status);
IF (ADC_INT0和状态)
{
curADCResult = MAP_ADC14_getResult (ADC_MEM0);
//map_ADC14_toggleConversionTrigger (); //例如,不需要
a2d_f = true;
//map_ADC14_disableConversion(); //需要在否则不产生中断后重新初始化
}
}/*结束 ADC14_IRQHandler */