Turns out it's not the pointers. This seizes up as well.
void CubeControl::writeCube(cubeStep thisCube)
{
int startTime = millis();
byte arrayHolder[numRegisters];
while(millis()-startTime <= thisCube.stepDuration)
{
for (int thisLayer = 0; thisLayer < numLayers; thisLayer++)
{
for (int regnum = 0; regnum < numRegisters; regnum++)
{
arrayHolder[regnum] = thisCube.layer[thisLayer][regnum];
}
writeLayer(arrayHolder, thisLayer, thisCube.layerDuration);
Serial.println();
Serial.println(arrayHolder[0]);
}
}
return;
}
Any clues? I'm at a loss.
It's for an LED cube. It blinks in the correct order, stops blinking, and either quits going though the loop like in the above example or starts throwing out garbage data.