some fine tuning to make it human readable:
thanks a smart solution from "dhenry"
/*
ADS1244
*/
int DATA = 4;
int SCLK = 5;
void setup() {
pinMode(DATA, INPUT);
pinMode(SCLK, OUTPUT);
Serial.begin(115200);
// generate a 2.4MHz clock signal on pin 3
pinMode(3, OUTPUT); //CLK
// 17.11 Register Description
TCCR2A = 0x33; // 0011 0011
TCCR2B = 0x09; // 0000 1001
OCR2A = 0x06; // 0000 0110
OCR2B = 0x03; // 0000 0011
Serial.print("ADS1244\n"); // output 'AADS1244' (?) additional 'A' in front
delay(100);
}
void loop() {
// Code for reading the data:
int32_t value = 0;
//digitalWrite(SCLK, HIGH); //enter slleep mode
delay(300);
digitalWrite(SCLK, LOW); // wake up ADC
// wait for data ready, stay in while-loop until LOW
while (digitalRead(DATA) == HIGH);
value = shiftIn(DATA, SCLK, MSBFIRST);
value <<= 8;
value |= shiftIn(DATA, SCLK, MSBFIRST);
value <<= 8;
value |= shiftIn(DATA, SCLK, MSBFIRST);
digitalWrite(SCLK, HIGH); // enter sleep mode
//digitalWrite(SCLK, LOW); // 25th pulse to keep DATA high till next data ready
// process as int24_t (two's compliment 24bit)
value = ((signed long) (value << 8)) >> 8;
Serial.println(value, DEC);
Serial.flush();
}