Software approach seems good because you could implement it in maybe tens of similar micros. Isn't good enough, better than a maybe crowded BOM?OK, I had not realized that the frequency generation was for a motion control project, or that the goal was to get programming exercise. My tendency is to always avoid the software approach because the code is always invisible when the thing is running, whatever that thing may be. AND also the software approach ALWAYS needs an external computer and a lot of additional hardware and none of that is really free, even if you don't need to pay cash for it. One more benefit of doing things in hardware is that with just a small bit of extra effort during the design phase it is possible to have every single part available from multiple sources. The grief of starting a big production run and then finding that some key part is not available because suddenly it is demanded for national defense is quite extreme. Using components available from multiple producers is the easy solution, and not having to load in code to make the boards work is also mighty nice. So designing is a string of choices. But we knew that all along.