SPI error communicating with MAX11040K ADC

I have been using Arduino UNO connecting to an MAX11040K through SPI.
Got a bit error with communicating with more than a byte, need some help here.
When started writing WCR and reading WCR was fine, WDRCR and RDRCR both do well now.

However I couldn't read the results correctly.
The results for all the channels are just showing 262143 =(

CR=10000
RCR Confirmation=10000
WDRCR=10011000000000
WDRCR Confirmation=10011000000000
RDR=11110000
DATA=262143 IC=0 Ch=0
DATA=262143 IC=0 Ch=1
DATA=262143 IC=0 Ch=2
DATA=262143 IC=0 Ch=3
RDR=11110000
DATA=262143 IC=0 Ch=0
DATA=262143 IC=0 Ch=1
DATA=262143 IC=0 Ch=2
DATA=262143 IC=0 Ch=3

void loop() {
  // put your main code here, to run repeatedly: 
  
  if (millis() - time >= samplingRate) {  // time loop
    time = millis();
  
  byte ADCData;
  long ADCData_0 = 0;
  long ADCData_1 = 0;
  long ADCData_2 = 0;
  long ADCData_3 = 0;
  
  // don't do anything until the data ready pin is high:
  if (digitalRead(dataReadyPin) == LOW) {
    //Read the temperature data
    Serial.print("RDR=");
    Serial.println(RDR, BIN);
    // take the chip select low to select the device:
    digitalWrite(chipSelectPin, LOW);
    // send the device the register you want to read:
    SPI.transfer(RDR);
    // send a value of 0 to read the byte returned:
    ADCData = SPI.transfer(0x00);
    ADCData_0 = ADCData;
    ADCData = SPI.transfer(0x00);
    ADCData_0 = (ADCData_0 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_0 = (ADCData_0 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_1 = ADCData;
    ADCData = SPI.transfer(0x00);
    ADCData_1 = (ADCData_1 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_1 = (ADCData_1 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_2 = ADCData;
    ADCData = SPI.transfer(0x00);
    ADCData_2 = (ADCData_2 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_2 = (ADCData_2 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_3 = ADCData;
    ADCData = SPI.transfer(0x00);
    ADCData_3 = (ADCData_3 << 8) | ADCData ;
    ADCData = SPI.transfer(0x00);
    ADCData_3 = (ADCData_3 << 8) | ADCData ;
    
    // take the chip select high to de-select:
    digitalWrite(chipSelectPin, HIGH);
    
    // For debuging
    // Channel 0
    Serial.print("DATA=");
    Serial.print((ADCData_0 >> 5) & 0b1111111111111111111, DEC);
    Serial.print("\t");
    Serial.print("IC=");
    Serial.print((ADCData_0 >> 2) & 0b111, BIN);
    Serial.print("\t");
    Serial.print("Ch=");
    Serial.println(ADCData_0 & 0b11, DEC);
    // Channel 1
    Serial.print("DATA=");
    Serial.print((ADCData_1 >> 5) & 0b1111111111111111111, DEC);
    Serial.print("\t");
    Serial.print("IC=");
    Serial.print((ADCData_1 >> 2) & 0b111, BIN);
    Serial.print("\t");
    Serial.print("Ch=");
    Serial.println(ADCData_1 & 0b11, DEC);
    // Channel 2
    Serial.print("DATA=");
    Serial.print((ADCData_2 >> 5) & 0b1111111111111111111, DEC);
    Serial.print("\t");
    Serial.print("IC=");
    Serial.print((ADCData_2 >> 2) & 0b111, BIN);
    Serial.print("\t");
    Serial.print("Ch=");
    Serial.println(ADCData_2 & 0b11, DEC);
    // Channel 3
    Serial.print("DATA=");
    Serial.print((ADCData_3 >> 5) & 0b1111111111111111111, DEC);
    Serial.print("\t");
    Serial.print("IC=");
    Serial.print((ADCData_3 >> 2) & 0b111, BIN);
    Serial.print("\t");
    Serial.print("Ch=");
    Serial.println(ADCData_3 & 0b11, DEC);
  }
  
  } // time loop
}

Does your code include a cool smilie? Thought not.
That is why we ask you post the code using code tags.
Didn't know?
There is a sticky entitled how to use this forum.

Grumpy_Mike:
Does your code include a cool smilie? Thought not.
That is why we ask you post the code using code tags.
Didn't know?
There is a sticky entitled how to use this forum.

Thanks for the tips, just updated, hope you could give me a hand. Thanks!