打印

求助使用过CS5532的朋友帮我看看为什么不能采集数据?

[复制链接]
1678|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shijieqiji|  楼主 | 2012-6-19 19:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,为什么无数据转换出来?请大家伴我看看哪里有问题?
void CS5532_ADC_init(void)
{
    unsigned char i,temp[4];
/****系统复位*********/
reset:
    CLR_SS;
        for(i=15;i>0;i--)
        {
            SpiWriteByte(0xFF);
        }
        SpiWriteByte(0xFE);
        SET_SS;
        DDRB=0xFF;
        PORTB=0x02;
    delay(20);
        
        CLR_SS;
         SpiWriteByte(0x03);//写入CS5532复位命令  
        SpiWriteByte(0x20);
        SpiWriteByte(0x00);
        SpiWriteByte(0x00);
        SpiWriteByte(0x00);
        SET_SS;
        
        CLR_SS;
         SpiWriteByte(0x0B);//读取配置寄存器内容
        temp[0]=SpiReadByte();
        temp[1]=SpiReadByte();
        temp[2]=SpiReadByte();
        temp[3]=SpiReadByte();
        if(!(temp[0]&0x10))
        {
           goto reset;
        }
        SET_SS;
        
  
        CLR_SS;
         SpiWriteByte(0x03);//写配置寄存器
        SpiWriteByte(0x00);
        SpiWriteByte(0x00);
        SpiWriteByte(0x40);
        SpiWriteByte(0x00);
        SET_SS;

    CLR_SS;
        SpiWriteByte(0x05);//写通道设置寄存器
        SpiWriteByte(0x31);
        SpiWriteByte(0x80);
        SpiWriteByte(0x31);
        SpiWriteByte(0x80);
    SET_SS;
        
        CLR_SS;
        SpiWriteByte(0xC0);//启动A/D连续转换
    SET_SS;
}
void CS5532_read_data(void)
{
     unsigned char i;

/******读数据*******/        
    CLR_SS;
        SpiWriteByte(0x0C);
        for(i=0;i<4;i++)
        {
            recv_adc_data=SpiReadByte();
    }
        SET_SS;
        send_length=3;
        send_buf_pointer=&recv_adc_data[1];
        UDR0=recv_adc_data[0];
        DDRD=0xFF;
        PORTD=0x80;

}

相关帖子

沙发
shijieqiji|  楼主 | 2012-6-20 11:11 | 只看该作者
怎么没人回复我呢,自己顶!

使用特权

评论回复
板凳
jiangzhe8525| | 2012-6-22 09:57 | 只看该作者
goto reset;
你不必返回到那步啊,
还有:
SpiWriteByte(0x0B);//读取配置寄存器内容
        temp[0]=SpiReadByte();
        temp[1]=SpiReadByte();
        temp[2]=SpiReadByte();
        temp[3]=SpiReadByte();
        if(!(temp[0]&0x10))
        {
           goto reset;
        }
这是什么意思,IF中的判断标准是这个么,数据手册没仔细看
还有,读数据有个清零的时钟吧。

使用特权

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

本版积分规则

17

主题

71

帖子

1

粉丝