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 转换时钟 是
AD1CHS = 0; // 配置输入通道,CH0+
AD1CSSL = 0; // 输入扫描被禁止
IFS0bits.AD1IF = 0; // 清中断
IPC3bits.AD1IP2 =
IPC3bits.AD1IP1 =
IPC3bits.AD1IP0 =
IEC0bits.AD1IE = 1; //
AD1CON1bits.ADON = 1; //
AD1CON1bits.SAMP = 1; // 开始采样输入
Delay(); //延时,确保开始转换时,采样的时间已结束
AD1CON1bits.SAMP = 0; // A/D采样结束,开始转换
中断
void __attribute__ ((__interrupt__)) _ADC1Interrupt(void)
{
IFS0bits.AD1IF = 0;
}
在pic的数据手册中有比较详细的例程,值得参考
MSP430
这个单片机的比较电压可以选择内部或外部的
问题:AD转换,单通道单次转化和单通道多次转换有什么区别
单次转换是指进行一次转换前需要你给一次指令。
连续转换的话开启后自动连续进行转换,转换的数据连续进行更新。
如果你采用单次转换,就需要不断发送转换的命令,读取结果,再发转换命令,再读。就是循环啦。
如果连续转换开启的话,就在程序中循环读就可以了。
STM32
在采集电池电压时遇到了问题,3.9v到4.2v的电压得到的ad转换的电压值的寄存器存储的电压值正常,3.9v以下的值不正确,发现是Vref+输入的比较电压不稳定造成的。
上一篇:Nuvoton单片机调试
下一篇:软件抗干扰笔记
推荐阅读最新更新时间:2024-03-16 14:33
- 热门资源推荐
- 热门放大器推荐
- 单片机创新实践应用.
- 单片机控制的步进电机定频脉宽调制可变细分驱动系统
- 高速MCU实现小体积300W BLDC马达控制
- 基于STM32微控制器的空间矢量脉宽调制
An error occurred.
Sorry, the page you are looking for is currently unavailable.
Please try again later.
If you are the system administrator of this resource then you should check the error log for details.
Faithfully yours, OpenResty.
设计资源 培训 开发板 精华推荐
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况