搜索
bottom↓
回复: 0

哪位有用过KXR94加计,程序测试不通请大家帮忙看看

[复制链接]

出0入0汤圆

发表于 2015-10-20 09:27:52 | 显示全部楼层 |阅读模式
如图我现在用单片机直接读取KXR94的值,但是读出的结果不对,程序如下,此外我LTC1865有没有朋友用过,能否给我一个驱动程序,我使用AD试试也行

UCHAR8 KXR94_read_write(UCHAR8 cnt)
{
   UCHAR8 sum = ZERO;
   UCHAR8 i;
   for(i=0; i<8; i++)
   {
      //CLR_SPI_SCK;
          CLR_KXR94_SCK;
          //准备好写入的数据
          if(cnt&(1<<(7-i))) SET_KXR94_DO;
          else  CLR_KXR94_DO;
          
          delay_us(NINE);
          SET_KXR94_SCK;
          //SET_SPI_SCK;//上升沿写入,同时miso在上升沿已经输出数据
          //读入数据
          if(Read_KXR94_DI) sum |= (1<<(7-i));
          delay_us(NINE);
          //CLR_SPI_SCK;
          CLR_KXR94_SCK;
   }
   return sum;
}

void spi_write(unsigned char spi_dat)  
{  
   unsigned  char  i;   
   for  (i=0;i<8;i++)  
   {  
      CLR_KXR94_SCK;   
      if((spi_dat & 0x80)==0x80)SET_KXR94_DO;  
      else CLR_KXR94_DO;  
      SET_KXR94_SCK;   
      spi_dat=(spi_dat<<1);  
    }
}  
/********************************
  从SPI器件读出一个字节数据
********************************/
unsigned char spi_read()  
{  
   unsigned char i,spi_dat;  
   for (i=0;i<8;i++)  
   {                                 
      CLR_KXR94_SCK;
      spi_dat=(spi_dat<<1);  
      SET_KXR94_SCK;
      if(Read_KXR94_DI)spi_dat|=0x01;  
      else spi_dat &= ~0x01;  
   }  
   return spi_dat;  
}

void KXR94_CHANGE_chanel(UCHAR8 aix)
{
   CLR_KXR94_CS;
   delay_us(5);
   KXR94_read_write(0x04);//command to write to the control register
   delay_us(40);
   KXR94_read_write(0x04);//enable bit in the internal register
   SET_KXR94_CS;
   delay_us(100);
   CLR_KXR94_CS;
   KXR94_read_write(aix);//the command to convert theX-channel
   delay_us(100);
   if(aix == 0x00)
   {
      KXR94.DATA_AXIS_X[1] = KXR94_read_write(0x00);//placeholders
      delay_us(100);
      KXR94.DATA_AXIS_X[0] = KXR94_read_write(0x00);
   }
   else if(aix == 0x01)
   {
      KXR94.DATA_AXIS_Y[1] = KXR94_read_write(0x00);//placeholders
      delay_us(100);
      KXR94.DATA_AXIS_Y[0] = KXR94_read_write(0x00);
   }
   else if(aix == 0x02)
   {
      KXR94.DATA_AXIS_Z[1] = KXR94_read_write(0x00);//placeholders
      delay_us(100);
      KXR94.DATA_AXIS_Z[0] = KXR94_read_write(0x00);
   }
   SET_KXR94_CS;
}

void READ_AIXS_CYCLE(void)
{
    UCHAR8 REC_CONTS;
    KXR94_CHANGE_chanel(0x00); // aixs_x
        KXR94_CHANGE_chanel(0x01); // aixs_Y
        KXR94_CHANGE_chanel(0x02); // aixs_Z
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 08:21

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表