为什么他那个AD转换不用乘上分辨率啊

2019-03-24 17:47发布

        普中科技的程序:temp = Read_AD_Data(0x94);                //初始化AD,读取AIN0(001)通道的值
  AD值读取不是应该        vin=read_ad()*500.0/1024;类似与这样的吗。   
用的芯片是xpt2046,是不是已经算上分辨率了啊,新人第一次发帖向大神求助。
此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
14条回答
1535225922
2019-03-25 03:56
void SPI_Write(uchar dat)
{
        uchar i;
        CLK = 0;
        for(i=0; i<8; i++)
        {
                DIN = dat >> 7;          //放置最高位
                dat <<= 1;
                CLK = 0;                        //上升沿放置数据

                CLK = 1;

        }
}
/****************************************************************************
*函数名:SPI_Read
*输  入:无
*输  出:dat:读取 到的数据
*功  能:使用SPI读取数据
****************************************************************************/

uint SPI_Read(void)
{
        uint i, dat=0;
        CLK = 0;
        for(i=0; i<12; i++)                //接收12位数据
        {
                dat <<= 1;

                CLK = 1;
                CLK = 0;

                dat |= DOUT;

        }
        return dat;       
}

/****************************************************************************
*函数名:Read_AD_Data
*输  入:cmd:通道地址
*输  出:endValue:最终信号处理后返回的值
*功  能:读取AD数据
****************************************************************************/
uint Read_AD_Data(uchar cmd)
{
        uchar i;
        uint AD_Value;
        CLK = 0;
        CS  = 0;
        SPI_Write(cmd);
        for(i=6; i>0; i--);         //延时等待转换结果
        CLK = 1;                                  //发送一个时钟周期,清除BUSY
        _nop_();
        _nop_();
        CLK = 0;
        _nop_();
        _nop_();
        AD_Value=SPI_Read();
        CS = 1;
        return AD_Value;       
}
这个是AD里面读取的程序,里面好像也没算上分辨率啊,分辨率好像是12位

一周热门 更多>