打印

cs5463数据读写遇到的问题

[复制链接]
1767|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
biao0422|  楼主 | 2010-6-11 11:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 biao0422 于 2010-6-11 14:17 编辑

我现在用的cs5463这款芯片,现在遇到的问题是读取寄存器里的数据只能读出高八位的数据,我让显示只显示后面16位的数据有时会闪的很厉害,也根本不稳定,希望前辈们给小弟一点指点,先谢谢啦
下面是我写的程序,请高手们帮忙看一下
void delay()              //延时程序
    {
     uint i;                 //定义整形变量
     for(i=0x100;i--;);     //延时
    }
void spiinit()
{
TRISD=0X00;
TRISA=0X00;
TRISC=0X10;
SSPSTAT=0X82;
SSPCON=0X30;
    INTCON=0X00;
    PIR1=0X00;
}
void spi_comm(unsigned char x)
{
    SSPBUF=x;
    while(!SSPIF);
    SSPIF=0;
}
uchar spi_in()
{
    uchar y;
    SSPBUF=0;
    while(!SSPIF);
    SSPIF=0;
    y=SSPBUF;
    return(y);
}
void csinit()
{
reset=0;
delay();   
reset=1;
din=0;
sclk=0;
cs=1;
nop();
cs=0;
din=1;
spi_comm(0xff);
spi_comm(0xff);
spi_comm(0xff);
spi_comm(0xfe);
nop();
din=0;
}
void cs_write(uchar add,uchar a1,uchar a2,uchar a3)
{
cs=0;
spi_comm(add);
spi_comm(a1);
spi_comm(a2);
spi_comm(a3);
cs=1;
}
uchar cs_read(uchar add)
{
uchar temp0,temp1,temp2;
unsigned long temp;
cs=0;
spi_comm(add);
  temp0=spi_in();
  temp1=spi_in();
  temp2=spi_in();
cs=1;
// temp=temp0+temp1+temp2;
temp=temp1;  //想显示后8位看看能不能读出数据
return(temp);
}
void cs_config()
{
cs_write(94,128,0,0); //status 状态寄存器 0x800000
cs_write(64,0,0,16);  //config 配置寄存器 0x00000f  k=1
cs_write(74,0,15,160);  //cycle count 计算周期数  0x000fa0  n=4000
cs_write(116,0,0,0);  //mask 中断屏蔽寄存器  0x000000 不激活INT
cs_write(100,0,0,97);  //made 操作模式 0x000061 开启HPF滤波器
// ac_cs5463();    //校准
// cs_write(32,iac1,iac2,iac3);  //写校准值
// cs_write(34,vac1,vac2,vac3);
cs=0;
spi_comm(0xe8);
cs=1;
}
void display(uint x)  
{
uint qian,bai,shi,ge,temp;
temp=x;
qian=temp/1000;
bai=temp%1000/100;
shi=temp%100/10;
ge=temp%10;
PORTA=0x1f;
PORTD=table[qian];
delay();
PORTA=0x2f;
PORTD=table[bai];
delay();
PORTA=0x37;
PORTD=table[shi];
delay();
PORTA=0x3b;
PORTD=table[ge];
delay();
}
void main()
{
uint a=0;
spiinit();
csinit();
cs_config();
while(1)
{
  a=cs_read(0x16);
  display(a);  //显示
  delay();
  delay();
}
}

相关帖子

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

本版积分规则

0

主题

13

帖子

2

粉丝