Oh wow, I feel so stupid, but I've just solved my own problem. Undervolting the shift-register inside of the controller by a half volt was enough to cause it to freak out giving me incomplete output, my code now works as expected and everything is working great.
Thanks for the help, and, if you wouldn't mind, could you elaborate a bit on what you meant by the PortB interrupt, I've done very little with interrupts and don't quite get what you mean.
Bookmarks