打印

新手。串行A/D转换器TLC1549的驱动程序的问题。。

[复制链接]
1858|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
史高飞尔得|  楼主 | 2010-2-26 00:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我看书上的,驱动TLC1549程序的问题
。。。头文件略
#define uchar unsigned char
#define uint  unsigned int
sbit AD_CS=P1^0;
sbit AD_INCLOCK=P1^1;
sbit AD_DATAOUT=p1^2;
unit ad-convert(void);
void main(void)
{ unit ad-data-10bit;
  AD_CS=1;
   AD_IOCLOCK=0;
while(1)
ad-data-10bit=ad-convert()
  dalay (50)
}
########以下是AD 转换函数 功能是驱动芯片完成一次a/d采样,返回值为AD 转换结果,使用16bit的uint数据表示 ,低10位有效 这段程序我几乎看不懂,不太清楚其实现何种功能,哪位大虾能帮小弟看下 谢啦!!!!######
uint ad-convert(void)
{ uchar i;
  uint AD_DATA=0;
AD_CS=0
for(i=0;i<=09;i++)
  {AD_IOCLOCK=0;
     if(AD_DATAOUT==1)
    {AD_DATA=AD_DATA*2+1;
}
   else
{AD_DATA=DA_DATA*2;
}
AD_IOCLOCK=0;}
AD_IOCLOCK=0;
AD_CS=0;
return(AD_DATA):
}
延时电路略

相关帖子

沙发
mohanwei| | 2010-3-9 21:52 | 只看该作者
uint ad-convert(void)
{
        uchar i;
        uint AD_DATA=0;
        AD_CS=0;//选中AD
        for(i=0;i<=9;i++)//连续读10bit数据
        {
                AD_IOCLOCK=0;//??
                if(AD_DATAOUT==1)//读取AD输出的1bit数据
                {
                        AD_DATA=AD_DATA*2+1;//若该位数据为1,采样值左移1位,低位设为1
                }
                else
                {
                        AD_DATA=DA_DATA*2;//若该位数据为0,采样值左移1位,低位设为0
                }
                AD_IOCLOCK=0;//??两个时钟肯定有1个错误,好好读一下芯片的时序图……
        }
        AD_IOCLOCK=0;
        AD_CS=0;//应该是AD_CS=1;
        return(AD_DATA);
}

使用特权

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

本版积分规则

0

主题

4

帖子

1

粉丝