[国产单片机] AD转换

[复制链接]
379|22
 楼主 | 2018-12-4 11:46 | 显示全部楼层 |阅读模式
输入电压是3.7v,分压后输入电压是2.4v.AD采集到电池电压值为0.25,公式是3.3*(get_ad/4096)吗?
| 2018-12-4 11:52 | 显示全部楼层
ADC的基准是啥?多少位的采样值这些都没有……
| 2018-12-4 13:26 | 显示全部楼层
扩大10倍就很接近了
 楼主 | 2018-12-4 14:25 | 显示全部楼层
神的棋子 发表于 2018-12-4 11:52
ADC的基准是啥?多少位的采样值这些都没有……

ADC的基准是内部基准电压,12位的采样值
 楼主 | 2018-12-4 14:26 | 显示全部楼层
ningling_21 发表于 2018-12-4 13:26
扩大10倍就很接近了

扩大十倍是乘10的意思吗?呜呜

评论

ningling_21 2018-12-4 15:29 回复TA
没错 
 楼主 | 2018-12-4 14:27 | 显示全部楼层
内部基准电压测量是3V,ADC存放在两个八位数据寄存器,一个是高八位一个是低四位
| 2018-12-4 15:29 | 显示全部楼层
Royal7z7z 发表于 2018-12-4 14:25
ADC的基准是内部基准电压,12位的采样值

基准电压是多少?
 楼主 | 2018-12-4 15:56 | 显示全部楼层
ningling_21 发表于 2018-12-4 15:29
基准电压是多少?

我测出来的基准电压是3.3v
| 2018-12-4 17:03 | 显示全部楼层
V待测 = V基准*(采样值/4096)

评论

Royal7z7z 2018-12-4 17:12 回复TA
V基准我看手册解释是:开启AD转换并将AD通道选择内部电压基准通道,测试其AD值。该值表示的是当前电源电压下,AD输入口1.2V时,芯片所测试得到的AD值。请问是这样的吗 
神的棋子 2018-12-6 08:53 回复TA
@Royal7z7z :基准电压不是测出来的,是你测量待测电压的参考电压,一般单片机的ADC基准电压要么是VDD,要么是内部的电压基准,规格书上有说明的。 
Royal7z7z 2018-12-6 16:37 回复TA
@神的棋子 :嗯,是的,内部有一个0.6-1.2v的基准电压,我测量待测电压的参考电压是3.3V,规格书上有参考公式。 
| 2018-12-6 13:12 | 显示全部楼层
Royal7z7z 发表于 2018-12-4 15:56
我测出来的基准电压是3.3v

验证:输入3.3V电压,得到的AD值应该是最大值0XFFF(12位AD),输入接地,得到的AD值应该是0
 楼主 | 2018-12-6 16:40 | 显示全部楼层
ningling_21 发表于 2018-12-6 13:12
验证:输入3.3V电压,得到的AD值应该是最大值0XFFF(12位AD),输入接地,得到的AD值应该是0 ...

3.3V的输入电压,我测出来的电压值是1.81V.可能是我以前算错了,把高八位数据寄存器(0XFF)的值直接加上低八位(0xff),后来我上网查了一下,才想起来是把低八位放到高八位后面。呃呃呃

评论

ningling_21 2018-12-6 18:29 回复TA
注意 数据对齐 方式 
 楼主 | 2018-12-6 17:20 | 显示全部楼层
还有一个问题,两个16位数相乘怎么实现比较好,我网上查的是左移和加法
| 2018-12-6 18:29 | 显示全部楼层
Royal7z7z 发表于 2018-12-6 17:20
还有一个问题,两个16位数相乘怎么实现比较好,我网上查的是左移和加法

用的汇编吗
 楼主 | 2018-12-7 08:52 | 显示全部楼层

是的,两个十六位的数相乘,用移位怎么实现呢,我网上百度说是左移和加法
| 2018-12-7 08:53 | 显示全部楼层
Royal7z7z 发表于 2018-12-6 17:20
还有一个问题,两个16位数相乘怎么实现比较好,我网上查的是左移和加法

如果是汇编的话肯定是左移和加法是最简单也是效率最高的,如果是C的话编译器会处理好。
 楼主 | 2018-12-7 09:32 | 显示全部楼层
神的棋子 发表于 2018-12-7 08:53
如果是汇编的话肯定是左移和加法是最简单也是效率最高的,如果是C的话编译器会处理好。 ...

两个16位数据比如12位的AD数据是1000 1111 0101 0000乘00....11怎么左移和相加呢?
| 2018-12-7 10:23 | 显示全部楼层
Royal7z7z 发表于 2018-12-7 09:32
两个16位数据比如12位的AD数据是1000 1111 0101 0000乘00....11怎么左移和相加呢? ...

搜一下匠人笔记,有一篇专门说明的,不过很老了, 不知道现在还能不能找得到
 楼主 | 2018-12-8 10:01 | 显示全部楼层
神的棋子 发表于 2018-12-7 10:23
搜一下匠人笔记,有一篇专门说明的,不过很老了, 不知道现在还能不能找得到 ...

原来是一本书啊,。。。。还是解决不了
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式
我要创建版块 申请成为版主

论坛热帖

关闭

热门推荐上一条 /6 下一条

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