|
<br /> 我的问题是这样的:我找了一个飞思卡尔的事例程序,其中有个for循环,里面有个 u8Status = REIMS_READ_COMP_PRESSURE(au16Array1, 8) 函数,<br /><br />数据手册上说当返回值 u8Status =1时,说明压力值是不在100Kpa~800Kpa之间的。<br /><br />那么在下面的事例程序中,为什么在u8Status =1时还要进行加速度的测量呢,然后再将压力值通过下面两个语句,<br /><br />是事例程序的错了呢?还是我想错了呢? <br /><br /> au16Array3[1] = (au16Array1[0] >> 8) & 0xFF; /* Pressure high byte */<br /> au16Array3[2] = (UINT8)au16Array1[0] & 0xFF; /* Pressure Low byte */<br /><br />将压力进行保存并准备发送呢。<br /><br /><br /><br /><br /><br /><br />for (;;)<br /> { <br /> /* Take Pressure measurement */<br /> u8Status = REIMS_READ_COMP_PRESSURE(au16Array1, 8); <br /> if (u8Status == SET)<br /> {<br /> /* If valid, take acceleration measurements */<br /> u8Status = REIMS_READ_COMP_ACCEL_Z(au16Array2, au16Array1[1], 1, 0);<br /> if (u8Status == CLEAR)<br /> { <br /> /* If valid, send through RFX */ <br /> au16Array3[0] = (UINT8)au16Array1[1]; /* Temperature */<br /> au16Array3[1] = (au16Array1[0] >> 8) & 0xFF; /* Pressure high byte */<br /> au16Array3[2] = (UINT8)au16Array1[0] & 0xFF; /* Pressure Low byte */<br /> au16Array3[3] = (au16Array2[0] >> 8) & 0xFF; /* X high byte */<br /> au16Array3[4] = (UINT8)au16Array2[0] & 0xFF; /* X Low byte */<br /> au16Array3[5] = (au16Array2[2] >> 8) & 0xFF; /* Z high byte */<br /> au16Array3[6] = (UINT8)au16Array2[2] & 0xFF; /* Z Low byte */<br /> <br /> REIMS_RF_WRITE_DATA(7, (UINT8*)au16Array3, 0);<br /> vfnTxBufferMode(56, 0);<br /> } /* if UB_Status == CLEAR */ <br /> else<br /> {<br /> /* Do nothing */<br /> }<br /> } /* if UB_Status == CLEAR */<br /> else<br /> {<br /> /* Do nothing */<br /> }<br /> } /* for (;;) */ <br />} /* main */<br /><br /> |
|