Index: Accel.c =================================================================== diff -u -rcd1dbf44ebce97f61ad4a757d47449562ec366f0 -r85db35aef9a57d1efc02bb3b42fc802b65aa3646 --- Accel.c (.../Accel.c) (revision cd1dbf44ebce97f61ad4a757d47449562ec366f0) +++ Accel.c (.../Accel.c) (revision 85db35aef9a57d1efc02bb3b42fc802b65aa3646) @@ -39,7 +39,7 @@ #define MAX_TILT_ANGLE ( 7.0 ) ///< Maximum tilt of system before alarm #define MIN_TILT_ANGLE_TO_CLEAR_ALARM ( 5.0 ) ///< Minimum tilt of system before alarm is cleared #define MAX_TILT_PERSISTENCE ( 1 * MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Maximum time (in task intervals) that a tilt in excess of limit can persist before alarm -#define MAX_SHOCK_ACCELERATION ( 2.0 ) ///< Maximum shock (acceleration) measured on any axis before alarm +#define MAX_SHOCK_ACCELERATION ( 4.0 ) ///< Maximum shock (acceleration) measured on any axis before alarm #define MAX_TILT_G ( 1.0 ) ///< Maximum tilt (in g) #define MAX_TILT_ANGLE_DEG ( 90.0 ) ///< Maximum tilt angle (in degrees) @@ -208,9 +208,9 @@ accelAxes[ ACCEL_AXIS_X ].data = (F32)x * G_PER_LSB + accelCalOffsets[ ACCEL_AXIS_X ]; accelAxes[ ACCEL_AXIS_Y ].data = (F32)y * G_PER_LSB + accelCalOffsets[ ACCEL_AXIS_Y ]; accelAxes[ ACCEL_AXIS_Z ].data = (F32)z * G_PER_LSB + accelCalOffsets[ ACCEL_AXIS_Z ]; - xMax = (F32)xm * G_PER_LSB; - yMax = (F32)ym * G_PER_LSB; - zMax = (F32)zm * G_PER_LSB; + xMax = fabs( (F32)xm * G_PER_LSB ); + yMax = fabs( (F32)ym * G_PER_LSB ); + zMax = fabs( (F32)zm * G_PER_LSB ); if ( xMax > accelMaxs[ ACCEL_AXIS_X ].data ) { accelMaxs[ ACCEL_AXIS_X ].data = xMax; @@ -529,9 +529,9 @@ if ( maxAll > MAX_SHOCK_ACCELERATION ) { #ifdef _DG_ - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_SHOCK, (F32)maxAxis, maxAll ) + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_DG_SHOCK, (F32)maxAxis, getMaxAccelAxis( maxAxis ) ) #else - SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SHOCK, (F32)maxAxis, maxAll ) + SET_ALARM_WITH_2_F32_DATA( ALARM_ID_HD_SHOCK, (F32)maxAxis, getMaxAccelAxis( maxAxis ) ) #endif } }