With that code in setup you get a 2.4MHz clock signal on pin 3.
void setup() {
pinMode(3, OUTPUT);
TCCR2A = 0x33;
TCCR2B = 0x09;
OCR2A = 0x06;
OCR2B = 0x03;
}
Code for reading the data:
while (digitalRead(DATA_PIN) == HIGH); // wait for data ready
uint32_t value = shiftIn(DATA_PIN, CLOCK_PIN, MSBFIRST);
value <<= 8;
value |= shiftIn(DATA_PIN, CLOCK_PIN, MSBFIRST);
value <<= 8;
value |= shiftIn(DATA_PIN, CLOCK_PIN, MSBFIRST);
digitalWrite(CLOCK_PIN, HIGH);
digitalWrite(CLOCK_PIN, LOW); // 25th pulse to keep DATA high till next data ready
Keep in mind that DATA_PIN has to be in input mode while CLOCK_PIN has to be an output.
Hope that helps to get you started.