设为首页
收藏本站
开启辅助访问
登录
注册
论坛
BBS
资讯
商城
阿里云1688商城批发
排行榜
Ranklist
帮助
Help
淘帖
Collection
日志
Blog
相册
Album
分享
Share
记录
Doing
搜索
搜索
本版
帖子
用户
松翰单片机论坛和资料中心
»
论坛
›
学习资料下载区
›
单片机datasheet
›
SN8P2711ADC采样程序
返回列表
发新帖
SN8P2711ADC采样程序
[复制链接]
6532
|
3
|
2012-10-30 21:35:33
|
显示全部楼层
|
阅读模式
#include"my.h"
#include"Delay.h"
uint ADC_buf;
void ADC_Init()
{
FADENB=1;
delay_us(100);
ADM=0X90; //AIN0
P4CON=0X01; //P40 模拟输入
P4UR=0XFE; //P40禁止上拉
VREFH=0X02; //VREF=4V;
ADR=0X00; //Fcpu/16
FADS=1; //启动转换
while( ! FEOC);
FEOC=0;
ADC_buf=ADB;
ADC_buf=ADC_buf<<8;
ADC_buf=ADC_buf+(ADR & 0X0F);
}
请各位高手帮我看看,这是SN8P2711ADC采样程序,为什么采样得到的结果不正确,请高手指点
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
显身卡
MCU
|
2012-10-31 08:31:37
|
显示全部楼层
1、ADC设置,最好是先设置好通道参考电压转换速率等后再使能ADC电路,接着等待最少100US左右是ADC电路稳定后在开始AD
2、不了解C,uint ADC_buf,这样的话,不知道ADC_buf是几位的,如果是16BIT的,那么没问题
3、ADC_buf=ADC_buf<<8;
ADC_buf=ADC_buf+(ADR & 0X0F);
这样的结果,ADC的高八位就在ADC_buf高八位,但低四位去在ADC_buf的第八位里面,也就是说B4、B5、B6、B7都是0,也就是说你的结果是一个不连续的,怎么做?留给你自己想一下吧
回复
支持
反对
使用道具
举报
显身卡
chaoyue
|
2012-11-16 14:50:22
|
显示全部楼层
uint ADC_buf,uint指的是unsigned long,ADC_buf=ADC_buf<<8; 改为ADC_buf=ADC_buf<<4; 这个程序通了.对于你的回复,我还是非常感谢,祝工作顺利!
回复
支持
反对
使用道具
举报
显身卡
钟级陷阱
|
2013-11-22 14:30:17
|
显示全部楼层
chaoyue 发表于 2012-11-16 14:50
**** 作者被禁止或删除 内容自动屏蔽 ****
你这个的分辨率是16位?你怎么就确定不是8位呢/
回复
支持
反对
使用道具
举报
显身卡
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
浏览过的版块
8Bit OTP SN8P25xx/26xx/27xx/28xx/29xx等系列
单片机综合技术
单片机行业资讯
chaoyue
回复楼主
返回列表
单片机入门基础
综合单片机技术交流
单片机综合技术
单片机datasheet
应用资料
常用器件