TI-RTOS模块驱动示例-ADC模块

116 阅读1分钟

1.1 配置
APIs位置:
file:///C:/ti/simplelink_cc13x2_26x2_sdk_5_20_00_52/docs/drivers/doxygen/html/_a_d_c_8h.html#ti_drivers_ADC_Examples
syscfg配置:
在这里插入图片描述

1.2 代码
在static void ProjectZero_init(void)中添加如下函数
void adc_test(void)
{
// One-time init of ADC driver
ADC_init();

// initialize optional ADC parameters
ADC_Params_init(&params_adc);
params_adc.isProtected = true;

// Open ADC channels for usage
adcHandle = ADC_open(CONFIG_ADC_0, &params_adc);
if (adcHandle == NULL) {
   // ADC_open() failed
   while (1) {}
}

}

在模块驱动示例 的定时器回调函数中添加

int_fast16_t res;
uint16_t adcValue;
uint32_t adcValueUv;

res = ADC_convert(adcHandle, &adcValue);
if (res == ADC_STATUS_SUCCESS)
{
    adcValueUv = ADC_convertToMicroVolts(adcHandle, adcValue);

    watch_adcValueUv = adcValueUv;

    Log_info2("adcValue, Uv: %d, %d", adcValue, adcValueUv);
}

1.3 现象

  • 检测DAC输出的电压,如下图,上部分是DAC的code(经过校准),下部分是DAC采集到的电压(纵坐标是电压)
  • 在这里插入图片描述

1.4 问题
在IDE窗口中的ADC数值有时候会出来一个异常值

1.5 问题排查及分析
异常值是正常计算的负数值,IDE的Expressions视图及Graph曲线显示视图不能显示负数(已定义类型为带符号类型)