我的问题是这样的:我找了一个飞思卡尔的事例程序,其中有个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 */
|