打印

请教:AD7991程序问题

[复制链接]
4257|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
klchang|  楼主 | 2011-10-26 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD, sd, ST, TE, top
AD7991采用I2C总线,12位AD,我写的程序具体内容如下:
uchar dat[6]={0,0,0,0,0,0};
void delay()
{_nop_();_nop_();}
void start()
{
sda=1;
delay();
scl=1;
delay();
sda=0;
delay();   
}
void stop()
{
sda=0;
delay();
scl=1;
delay();
sda=1;
delay();
}
void respons()
{
uchar i=0;
scl=1;
delay();
while((sda==1)&&(i<255))i++;
scl=0;
delay();
}
void writebyte(uchar dat)
{
uchar i,temp;
temp=dat;
for(i=0;i<8;i++)
{
  temp=temp>>1;
  scl=0;
  delay();
  sda=CY;
  delay();
  scl=1;
  delay();
}
scl=0;
delay();
sda=1;
delay();
}
uchar readbyte()
{
uchar i,k=0;
scl=0;
delay();
sda=1;
delay();
for(i=0;i<8;i++)
{
  scl=1;
  delay();
  k=(k<<1)|sda;
  scl=0;
  delay();
}
return k;
}
void write_AD7991(uchar reg)
{
start();
writebyte(0x52);  //AD7991-0 Address:010 1000;AD7991-1 Address:010 1001
respons();
writebyte(reg);
respons();
stop();

}
void read_AD7991()
{
uchar i;
start();
write_AD7991(0x53);
respons();
for(i=0;i<3;i++)    //read 6 bytes,3 ADC value
{
  dat[2*i]=readbyte();
  sda=0;
  delay();
  scl=1;
  delay();
  dat[2*i+1]=readbyte();
}
sda=1;
delay();
scl=1;
delay();
scl=0;
stop();
}
存在问题:把AD转换后的值通过串口送到上位机,AD值都是FF。现已确定串口部分程序无问题,问题应该出在上面的程序,请各位前辈指点!

AD7991_7995_7999.pdf

600.48 KB

相关帖子

沙发
klchang|  楼主 | 2011-10-28 11:33 | 只看该作者
问题已解决。
解决方法:
1、仔细研读AD7991芯片资料。
2、重新写AD7991读写程序。

使用特权

评论回复
板凳
xujie0215| | 2012-6-4 17:38 | 只看该作者
请教 遇到同样问题

使用特权

评论回复
地板
Mervyn9416| | 2012-12-26 13:46 | 只看该作者
前辈,最近正在调试 AD7991 的程序,不知道是什么原因,ADC 不能工作,请您帮忙看一下我的程序好么?如果可以的话,也请您传一份您的 AD7991 的程序给我,谢谢!

AD7991 程序.zip

2.47 KB

使用特权

评论回复
5
2389676302| | 2012-12-27 15:11 | 只看该作者
帮忙顶一下

使用特权

评论回复
6
Mr-zhou| | 2016-1-20 17:30 | 只看该作者
前辈您好,我最近也在调AD7991,一直调不出来,不知道是哪的问题。。 想看看您是怎么调的,方便发份程序看看吗?

使用特权

评论回复
7
_bin| | 2016-2-25 17:27 | 只看该作者
Mervyn9416 发表于 2012-12-26 13:46
前辈,最近正在调试 AD7991 的程序,不知道是什么原因,ADC 不能工作,请您帮忙看一下我的程序好么?如果可 ...

前辈调试好了吗,我也遇到了这个问题,我的第一个数据一直变,其他数据都是FF,方便的话能给看下程序吗?就AD7991的几个函数就好

使用特权

评论回复
8
_bin| | 2016-3-2 19:23 | 只看该作者
前辈,我看到了您调试ad7991的帖子,可以给我看一下您的例程吗

使用特权

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

本版积分规则

个人签名:个人理解,若有错误,敬请指正!

0

主题

606

帖子

3

粉丝