// This function uses the temperature sensor sample reading to perform internal oscillator 2 compensation with // reference values stored in OTP. void Osc2Comp (int16 sensorSample) { int16 compOscFineTrim; EALLOW; compOscFineTrim = ((sensorSample - getRefTempOffset())*(int32)getOsc2FineTrimSlope() + OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc2FineTrimOffset() - OSC_POSTRIM; SysCtrlRegs.INTOSC2TRIM.all = GetOscTrimValue(getOsc2CoarseTrim(), compOscFineTrim); EDIS; }
// This function uses the temperature sensor sample reading to perform internal oscillator 1 compensation with // reference values stored in OTP. void Osc1Comp (int16 sensorSample) { int16 compOscFineTrim; EALLOW; compOscFineTrim = ((sensorSample - getRefTempOffset())*(int32)getOsc1FineTrimSlope() + OSC_POSTRIM_OFF + FP_ROUND )/FP_SCALE + getOsc1FineTrimOffset() - OSC_POSTRIM; if(compOscFineTrim > 31){ compOscFineTrim = 31; } else if(compOscFineTrim < -31){ compOscFineTrim = -31; } SysCtrlRegs.INTOSC1TRIM.all = GetOscTrimValue(getOsc1CoarseTrim(), compOscFineTrim); EDIS; }