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

7个职位/ 0个新职位
最后发表
motred
离线
最后看到:5年10个月前
专家
加入: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);
Uint16_t adc_sample = adc_get_sample();
adc_disable ();

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

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

R.Gantner
离线
最后看到:2个月4个星期前
加入:2014-01-18 13:57
你好,

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

RvA
离线
最后看到:2个月2个小时前
工作人员
加入: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年10个月前
专家
加入:2014-01-20 21:48
我在我的开发工具包中找到了它

我用你的代码在我的开发工具包里找到的,RvA。看起来我的硬件的问题可能是硬件:P

谢谢你的帮助。

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

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

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

hrg,我对这个也有意见。
它看起来可能是一个硬件错误,因为ADC工作时,电压直接施加到引脚,而不是电阻分压器。您是否尝试过使用直流电源来测试ADC?如果这行得通,那么你的问题可能是电阻分压器。

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

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

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