As I indicated in an earlier post, there was a significant error source due to the offset measurement and compensation in GetOffset().
I changed the ADCMux to include a third channel with Vssa as the third input. Then in GetOffset() I don't change the IDAC but switch the ADCMUx to the Vssa channel (=2). This significantly lowers the GetResult32 value I was getting from 11000+ counts to < 1000 counts.
volatile int32 result = 0;
/* Set the ADCMux to VSSA to measure the ADC offset */
/* Get the ADC offset voltage */
result = ADC_GetResult32();
I believe you are trying to compensate for the ADC offset. Setting the IDAC to 0mA is not as effective since there are non-linearity and leakages in the IDAC output. I recommend this as a more preferred method to offset correct the ADC input.
Once I used the above technique for offset measurements, my Temp readings from RTD_GetTemperature() are now within 0.12C of the intended values. Note: My unit testing are still using ideal RefRes and RTD (stepped from -70C thru 90C) values.
Len "Engineering is an Art. The Art of Compromise."