打印

MXY8300胎压监测问题

[复制链接]
2094|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
benedy|  楼主 | 2009-7-27 16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

  我的问题是这样的:我找了一个飞思卡尔的事例程序,其中有个for循环,里面有个 u8Status = REIMS_READ_COMP_PRESSURE(au16Array1, 8) 函数,

数据手册上说当返回值 u8Status =1时,说明压力值是不在100Kpa~800Kpa之间的。

那么在下面的事例程序中,为什么在u8Status =1时还要进行加速度的测量呢,然后再将压力值通过下面两个语句,

是事例程序的错了呢?还是我想错了呢?  

        au16Array3[1] = (au16Array1[0] >> 8) & 0xFF; /* Pressure high byte */
        au16Array3[2] = (UINT8)au16Array1[0] & 0xFF; /* Pressure Low byte */

将压力进行保存并准备发送呢。






for (;;)
  {        
    /* Take Pressure measurement */
    u8Status = REIMS_READ_COMP_PRESSURE(au16Array1, 8); 
    if (u8Status == SET)
    {
      /* If valid, take acceleration measurements */
      u8Status = REIMS_READ_COMP_ACCEL_Z(au16Array2, au16Array1[1], 1, 0);
      if (u8Status == CLEAR)
      {                
        /* If valid, send through RFX */        
        au16Array3[0] = (UINT8)au16Array1[1];        /* Temperature */
        au16Array3[1] = (au16Array1[0] >> 8) & 0xFF; /* Pressure high byte */
        au16Array3[2] = (UINT8)au16Array1[0] & 0xFF; /* Pressure Low byte */
        au16Array3[3] = (au16Array2[0] >> 8) & 0xFF; /* X high byte */
        au16Array3[4] = (UINT8)au16Array2[0] & 0xFF; /* X Low byte */
        au16Array3[5] = (au16Array2[2] >> 8) & 0xFF; /* Z high byte */
        au16Array3[6] = (UINT8)au16Array2[2] & 0xFF; /* Z Low byte */
                        
        REIMS_RF_WRITE_DATA(7, (UINT8*)au16Array3, 0);
        vfnTxBufferMode(56, 0);
      } /* if UB_Status == CLEAR */           
      else
      {
        /* Do nothing */
      }
    } /* if UB_Status == CLEAR */
    else
    {
      /* Do nothing */
    }
  } /* for (;;) */  
} /* main */

相关帖子

沙发
win2000_li| | 2009-8-12 08:37 | 只看该作者
没有用过,帮你顶。。。。。。。。。。。。。。。。。。。

使用特权

评论回复
板凳
benedy|  楼主 | 2009-8-17 16:32 | 只看该作者
自己顶一下,有人回答吗?

使用特权

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

本版积分规则

175

主题

843

帖子

0

粉丝