//***************************************************************************** // //! ReadAccSensor //! //! @brief Read Accelerometer Data from Sensor //! //! //! @return none //! //! // //***************************************************************************** void ReadAccSensor() { //Define Accelerometer Threshold to Detect Movement const short csAccThreshold = 5; signed char cAccXT1,cAccYT1,cAccZT1; signed char cAccXT2,cAccYT2,cAccZT2; signed short sDelAccX, sDelAccY, sDelAccZ; int iRet = -1; int iCount = 0; iRet = BMA222ReadNew(&cAccXT1, &cAccYT1, &cAccZT1); if(iRet) { //In case of error/ No New Data return return; } for(iCount=0;iCount<2;iCount++) { MAP_UtilsDelay((90*80*1000)); //30msec iRet = BMA222ReadNew(&cAccXT2, &cAccYT2, &cAccZT2); if(iRet) { //In case of error/ No New Data continue iRet = 0; continue; } else { sDelAccX = abs((signed short)cAccXT2 - (signed short)cAccXT1); sDelAccY = abs((signed short)cAccYT2 - (signed short)cAccYT1); sDelAccZ = abs((signed short)cAccZT2 - (signed short)cAccZT1); //Compare with Pre defined Threshold if(sDelAccX > csAccThreshold || sDelAccY > csAccThreshold || sDelAccZ > csAccThreshold) { //Device Movement Detected, Break and Return g_ucDryerRunning = 1; break; } else { //Device Movement Static g_ucDryerRunning = 0; } } } }
void bma222_read_sensor_data(sensor_t *sensor, char * data){ signed char x; signed char y; signed char z; BMA222ReadNew(&x, &y, &z); snprintf(sensor->data, sensor->data_len, bma222_read_data, x, y, z); }