请大虾帮忙看一下这个AD7682的程序,一直输出的是0xFFFF

2020-02-07 09:41发布

本帖最后由 cn_x 于 2013-7-18 14:33 编辑

WORD AdcReadChannel(BYTE channel)
{
    WORD ctrWord=0;
    WORD result=0;
    BYTE i;

    _CS_AD = 0;
    Wait2us();
    _CS_AD = 1;
    Wait2us();
   
    _CS_AD = 0;
    if(channel >= 4)
    {
        channel -= 4;
    }
    ctrWord= ((channel<<7) | 0b0011110001110001) << 2;
  
    Wait2us()
    for(i = 0;i<16;i++)
    {
        if(ctrWord & 0x8000)
        {
            SDO = 1;
        }
        else
        {
            SDO = 0;
        }
        Wait2us()
        SCK = 0;
        Wait2us()
        ctrWord <<= 1;
        SCK = 1;
        Wait2us()
        result <<= 1;
        if(SDI)
        {
            result |= 1;
        }
    }
    Wait2us()
    SCK = 0;
    Wait2us()
    _CS_AD = 1;

    return result;
}

使用的是外部4.096V电压基准
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
cn_x
1楼-- · 2020-02-07 13:54
搞定了···············  原来忘记初始化端口了·······  虚惊一场················
这段代码没有问题
cn_x
2楼-- · 2020-02-07 17:12
一开始写错了 ,是AD762,主题竟然改不回来了···················
lrbdh
3楼-- · 2020-02-07 17:17
不错,正好要用到!

一周热门 更多>