打印
[应用相关]

单片机之AD学习笔记

[复制链接]
1297|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Mozarts|  楼主 | 2016-11-9 20:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近调试了几个单片机的AD转换模块,碰到了一些问题,总结了一下
AD转换就是选通道、比较电压、要采集电压的端口设置为模拟端口
1、选择参考电压源
2、选择AD转换时钟
3、要采集电压的端口设置为模拟端口
4、选择要采样的模拟通道
5、使能AD模块
PIC24FJ
开始看此部分是调试电池电量的时候,是由于电池电量显示不准确,debug模式下,看ad采集到的电压被转换成的数据,发现寄存器ADC1BUF中的数据只有关开机是正确的,以后的值都是不对的好像大多数的值是零,后来发现是由于在主循环中的某个模块又把原来配置为模拟输入端口引脚还原成了普通的I/O口了(就是AD1PCFGbits.PCFG0先被配置为0后又被置1,我用的是通道0)。

A/D代码初始化实例
AD1PCFG = 0; // 配置ad端口,配置所有端口为模拟端口,要是作为普通io使用必须置1
AD1CON1 = 0x2208; // 配置采样时钟源
AD1CON2 = 0; // 配置A/D 比较电压,转换在每个采样结束后开始
AD1CON3 = 0; // 配置 A/D 转换时钟 是 Tcy/2
AD1CHS = 0; // 配置输入通道,CH0+ 输入AN0,CH0- 输入 Vr- (AVss).
AD1CSSL = 0; // 输入扫描被禁止
IFS0bits.AD1IF = 0; // 清中断

IPC3bits.AD1IP2 = 1;
IPC3bits.AD1IP1 = 1;
IPC3bits.AD1IP0 = 0; // 配置 A/D中断优先级

IEC0bits.AD1IE = 1; // 使能 A/D 中断
AD1CON1bits.ADON = 1; // 打开 A/D
AD1CON1bits.SAMP = 1; // 开始采样输入
Delay(); //延时,确保开始转换时,采样的时间已结束
AD1CON1bits.SAMP = 0; // A/D采样结束,开始转换
中断
void __attribute__ ((__interrupt__)) _ADC1Interrupt(void)
{
IFS0bits.AD1IF = 0;
}
在pic的数据手册中有比较详细的例程,值得参考
沙发
Listate| | 2016-11-9 20:25 | 只看该作者
AD转换,单通道单次转化和单通道多次转换有什么区别啊?

使用特权

评论回复
板凳
feiqi1| | 2016-11-9 20:29 | 只看该作者
单次转换是指进行一次转换前需要你给一次指令啊。

使用特权

评论回复
地板
androidbus| | 2016-11-9 20:32 | 只看该作者
连续转换的话那就是开启后自动连续进行转换了

使用特权

评论回复
5
litengg| | 2016-11-9 20:35 | 只看该作者
连续转换时,转换的数据连续进行更新的。

使用特权

评论回复
6
qiangweii| | 2016-11-9 20:39 | 只看该作者
如果你采用单次转换,就需要不断发送转换的命令。

使用特权

评论回复
7
shashaa| | 2016-11-9 20:43 | 只看该作者
读取结果,再发转换命令,再读。就是循环啦。

使用特权

评论回复
8
bbapple| | 2016-11-9 20:56 | 只看该作者
如果连续转换开启的话,就在程序中循环读就可以了。

使用特权

评论回复
9
handleMessage| | 2016-11-9 20:58 | 只看该作者
STM32在采集电池电压时遇到了问题,3.9v到4.2v的电压得到的ad转换的电压值的寄存器存储的电压值正常,3.9v以下的值不正确会是什么问题呢?

使用特权

评论回复
10
zhouhuanの| | 2016-11-9 21:03 | 只看该作者
handleMessage 发表于 2016-11-9 20:58
STM32在采集电池电压时遇到了问题,3.9v到4.2v的电压得到的ad转换的电压值的寄存器存储的电压值正常,3.9v ...

这个有可能是Vref+输入的比较电压不稳定造成的。

使用特权

评论回复
11
m小不点| | 2016-11-10 00:09 | 只看该作者
有用值得收藏  感谢楼主

使用特权

评论回复
12
fplman| | 2016-11-10 12:17 | 只看该作者
感谢楼主分享!学习了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

70

主题

1320

帖子

0

粉丝