使用ADC读取端口0引脚0电压

7个帖子/ 0个新
最后发表
motred
离线
最后看到:5年7个月前
专家
加入:2014-01-20 21:48
使用ADC读取端口0引脚0电压

你好,

我试图使用ADC读取端口0引脚0,我总是从adc_get_sample()获得0的值。

我有端口0引脚0保留如下:
Reserve_gpio (batt_meas, gpio_bat_meas_port, gpio_bat_meas_pin, pid_adc);
GPIO_ConfigurePin(GPIO_BAT_MEAS_PORT, GPIO_BAT_MEAS_PIN, INPUT, PID_ADC, false);

然后我试着像这样读取ADC:
adc_init (GP_ADC_SE GP_ADC_SIGN);
adc_enable_channel (ADC_CHANNEL_P00);//注意:改变频道使用- ADC_CHANNEL_VBAT3V);
adc_sample () Uint16_t adc_sample = adc_get_sample();
adc_disable ();

当我这样做时,我总是得到adc_sample == 0。

我做错什么了吗?我在外设驱动程序文档中没有看到任何其他建议。

R.Gantner
离线
最后看到:2周5天前
加入:2014-01-18 13:57
你好,

你好,
试着增加P0.0上的电压。如果电压低于0.2V (?)这是一个假设吗?)你总是得到0。

RvA
离线
最后看到:1周4天前
工作人员
加入:2014-02-07 14:10
嗨,我有一个工作的例子

嗨,下面我有一个使用ADC的工作示例:

uint16_t adc_read_P01_channel ()

uint16_t adc_sample;

/ / ADC INIT
adc_init (GP_ADC_SE 0);//单端模式

adc_enable_channel (ADC_CHANNEL_P01);/ / ADC_CHANNEL_P01
adc_sample = adc_get_sample ();/ /开始转换
返回(adc_sample);

主要的区别是变量的明确声明在第一行:uint16_t adc_sample;

你能在你的例子中尝试一下吗?
最好的问候,
RvA(对话框)

motred
离线
最后看到:5年7个月前
专家
加入:2014-01-20 21:48
我在我的工具箱里找到了

我在我的devkit上用你的代码RvA工作。看起来我的硬件的问题可能是硬件:P

谢谢你的帮助。

hrg
离线
最后看到:2年6个月前
大师
加入:2014-08-05 37
对于P0.0与您的代码

对于P0.0,你的代码总是显示00 !!为什么每个端口引脚P0.0,0.1,0.2,0.3处于不同的电压?

motred
离线
最后看到:5年7个月前
专家
加入:2014-01-20 21:48
hrg,我还有

hrg,我还是有点问题。
看起来这可能是硬件错误,因为ADC工作时直接应用到引脚上的电压,而不是电阻分频器。您是否尝试过使用直流电源来测试ADC?如果那工作,那么你的问题可能是与电阻分压器。

我在这里为电阻分频器问题创造了一个新问题:http://support.dialog-semiconductor.com/using-adc-read-voltage-divider-v..。

jeremy_xu
离线
最后看到:5年8个月前
加入:2015-07-23 07:47
这就跟你问声好!对话组,我有两个

这就跟你问声好!对话团队,我有两个问题:
1.我如何得到与测量电压相同的准确电压,无论我如何设置寄存器,我都无法得到准确的电压?
2.DA14580造成的硬件错误是否无法消除?