324,6 → 324,7 |
// Save values |
if(Compass_CalState != OldCalState) // avoid continously writing of eeprom! |
{ |
#define MIN_CALIBRATION 350 |
Calibration.MagX.Range = Xmax - Xmin; |
Calibration.MagX.Offset = (Xmin + Xmax) / 2; |
Calibration.MagY.Range = Ymax - Ymin; |
330,14 → 331,19 |
Calibration.MagY.Offset = (Ymin + Ymax) / 2; |
Calibration.MagZ.Range = Zmax - Zmin; |
Calibration.MagZ.Offset = (Zmin + Zmax) / 2; |
if((Calibration.MagX.Range > 512) && (Calibration.MagY.Range > 512) && (Calibration.MagZ.Range > 512)) |
if((Calibration.MagX.Range > MIN_CALIBRATION) && (Calibration.MagY.Range > MIN_CALIBRATION) && (Calibration.MagZ.Range > MIN_CALIBRATION)) |
{ |
NCMAG_IsCalibrated = NCMag_CalibrationWrite(); |
UART1_PutString("\r\n Calibration okay"); |
} |
else |
{ |
// restore old calibration data from eeprom |
NCMAG_IsCalibrated = NCMag_CalibrationRead(); |
UART1_PutString("\r\n Calibration FAILED - Values too low: "); |
if(Calibration.MagX.Range < MIN_CALIBRATION) UART1_PutString("X! "); |
if(Calibration.MagY.Range < MIN_CALIBRATION) UART1_PutString("Y! "); |
if(Calibration.MagZ.Range < MIN_CALIBRATION) UART1_PutString("Z! "); |
} |
} |
break; |