Rupture in the results of 24 bit A/D Conversion by WCMCU-1232 Module

WCMCU-1232 is a module that drive a ADS1232 to be connected as a embedded device . I use following program to read its data. ADS1232 use 24 bits of data in binary two’s complement format. I use it to measure ±2.5 volts but it not work linearly in this range. Please help me get linear results from this module.

signed long ADS1232_reading() {
  uint32_t signalD = 0;
  while (digitalRead(DOUT) == HIGH);
  delayMicroseconds(1) ;
  for (byte c = 24; c != 0; c--) {
    digitalWrite(SCLK, HIGH);
    delayMicroseconds(Tim) ;
    signalD |= digitalRead(DOUT);
    digitalWrite(SCLK, LOW);
    signalD <<= 1 ;
    delayMicroseconds(Tim + 8) ; } 
  // This part Pull Up DOUT to avoid Erorr
    digitalWrite(SCLK, HIGH);
    delayMicroseconds(Tim + 3) ;
    digitalWrite(SCLK, LOW);
    delayMicroseconds(Tim + 8) ;    
    signalD!=+1; 

  return signalD;               }