tomeaton17:
Okay, creating a separate member function to do the hardware initialisation fixed it. So is the arduino hardware initialisation only complete once the code has reached the setup() function?
Yes. There is a function, init(), that gets called, after constructors, etc., before setup(), that gets the hardware ready.