Quote Originally Posted by m_c View Post
D.C. in theory, everything should work, but in practice, things may not work quite right.
If it works in theory but not in practice, that just means your theory wasn't good enough.

Quote Originally Posted by m_c View Post
It can be things like marginally different speeds between a pin switching high and low, which are then exaggerated by drives that respond slight differently to high/low inputs and/or slight lag due to the different switching speeds. However with modern drives, it's pretty much a non-issue, but why take the chance?

Personally, given the choice of doing something in hardware or software, I'd personally do it in hardware every time, as it helps eliminate potential issues.
Again, the answer is vague so I'll repeat what D.C. asked - what specifically is the problem? The timing delays you're talking about are completely negligible, so there is no potential issue to eliminate. Originally the question was if you should set the motor directions in software, or one of the motor phases round to invert the direction. There will not be any tangible difference between the two, unless the software is pathetic.