嵌入式爱好者

查看: 14398|回复: 4

[Linux] 关于读取ADC值检测设备电池电量

[复制链接]

3

主题

9

帖子

38

积分

i.MX6UL通行证i.MX6Q通行证

扫一扫,手机访问本帖
发表于 2016-11-17 09:13:20 | 显示全部楼层 |阅读模式
设备使用S3C6410,硬件ADC接口用的是ADCIN1,使用int fd = ::open(ADCDEVICE,1)测试显示read错误。这可能是什么原因?同时未使用的ADCIN0,ADCIN2却能读到值,但读到的值不稳定,也不知道其原委。
回复

使用道具 举报

1

主题

3670

帖子

4179

积分

发表于 2016-11-21 10:45:37 | 显示全部楼层
您好:
    您的硬件连接方面没有问题吧,我没有做过类似工作,您能大致说一下您的工作流程吗

点评

目的是检测设备电池电量.  详情 回复 发表于 2016-11-23 13:44
技术支持电话:0312-3119192
技术支持邮箱:Android@forlinx.com
点评回复 支持 反对

使用道具 举报

3

主题

9

帖子

38

积分

i.MX6UL通行证i.MX6Q通行证

 楼主| 发表于 2016-11-23 13:44:55 | 显示全部楼层
飞凌-chongzi 发表于 2016-11-21 10:45
您好:
    您的硬件连接方面没有问题吧,我没有做过类似工作,您能大致说一下您的工作流程吗

目的是检测设备电池电量.

点评

同时AD端口有电压输出,这样的话是不是驱动有问题?但对ADCIN1口读取数据的返回值-1  详情 回复 发表于 2016-11-23 13:49
点评回复 支持 反对

使用道具 举报

3

主题

9

帖子

38

积分

i.MX6UL通行证i.MX6Q通行证

 楼主| 发表于 2016-11-23 13:49:51 | 显示全部楼层
sunsavious 发表于 2016-11-23 13:44
目的是检测设备电池电量.

同时AD端口有电压输出,这样的话是不是驱动有问题?但对ADCIN1口读取数据的返回值-1

点评

请教:在/drivers/char/forlinx6410_adc.c中有以下代码, static int s3c2410_adc_open(struct inode *inode, struct file *filp) { init_waitqueue_head(&(adcdev.wait)); adcdev.channel=0; adcdev.pres  详情 回复 发表于 2016-11-23 15:21
点评回复 支持 反对

使用道具 举报

3

主题

9

帖子

38

积分

i.MX6UL通行证i.MX6Q通行证

 楼主| 发表于 2016-11-23 15:21:21 | 显示全部楼层
sunsavious 发表于 2016-11-23 13:49
同时AD端口有电压输出,这样的话是不是驱动有问题?但对ADCIN1口读取数据的返回值-1

请教:在/drivers/char/forlinx6410_adc.c中有以下代码,
static int s3c2410_adc_open(struct inode *inode, struct file *filp)
{
        init_waitqueue_head(&(adcdev.wait));

        adcdev.channel=0;
        adcdev.prescale=0xff;

        DPRINTK("adc opened\n");
        return 0;
}
是不是说明ad读取的只能是ADCIN0口,其它口都读不到?即在应用层设置int fd = ::open(ADCDEVICE,1)时不管是不是1,都读0口,是吗?
点评回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋| 飞凌嵌入式 ( 冀ICP备12004394号-1 )

GMT+8, 2024-12-24 22:30

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表