You can simplify your code quite a bit
//Pin callouts
//74HC165
const int load = 3; // Shift in PL pin 1 GW
const int clockEnablePin = 4; // Shift in CE pin 15 BW
const int dataIn = 5; // Shift in Q7 pin 7 GR
const int clockIn = 6; // Shift in CP pin 2 BL
//74HC595
const int latchPin = 7; // Shift Out ST_CP pin 12 BL
const int clockPin = 8; // Shift Out SH-CP pin 11 BW
const int dataPin = 9; // Shift Out ser pin 14 GW
const int numOfRegisters = 4;
byte registerState[numOfRegisters];
void setup() {
Serial.begin(115200);
// Setup 74HC165 connections
pinMode(load, OUTPUT);
pinMode(clockEnablePin, OUTPUT);
pinMode(clockIn, OUTPUT);
pinMode(dataIn, INPUT);
// Setup 74HC595 connecttions
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
regclear();
}
void loop() {
GetInputs();
delay(800);
regWriteNew();
}
void regWriteNew() {
digitalWrite(latchPin, LOW);
for ( int i = 0; i < numOfRegisters; ++i ) {
shiftOut(dataPin, clockPin, MSBFIRST, registerState[i]);
}
digitalWrite(latchPin, HIGH);
}
void regclear() {
for (int i = 0; i < numOfRegisters; i++) {
registerState[i] = 0;
}
regWriteNew();
}
void GetInputs() {
// serialPrintLoop("GetInputs");
digitalWrite(load, LOW);
delayMicroseconds(10);
digitalWrite(load, HIGH);
delayMicroseconds(10);
Serial.print("Pin States:");
// Get data from 74HC165
digitalWrite(clockIn, HIGH);
digitalWrite(clockEnablePin, LOW);
for (int i = 0; i < numOfRegisters; ++i) {
byte data = shiftIn(dataIn, clockIn, LSBFIRST);
data = ~data; // invert
registerState[i] = data;
Serial.println(data, BIN);
}
digitalWrite(clockEnablePin, HIGH);
}