for brushless motor Apps i am using MC68332 with a specific TPU that is a "Time Process Unit" which can be described as a sub CPU dedicated to time purposes. It performs well and i have 16 channels available and from the point of view of the CPU (that is a Motorola 68000 core) the TPU is a set of registers to be initialized to ask the hardware to perform a specific task, in that case "do PWM on channel X, with a frequency of Y and a duty cycle of Z", i simply pass the -do-PWM- request with {X,Y,Z} as parameters to the TPU and she performs what required !
i am reading that HC12 has specific hw to perform PWM up to 4 channels, and HC16 is much more similar to 332. Nice to know, also i can use an cpld/fpga in order to have much more and faster pwm channels. It may be a good idea, i have to evaluate for the future, but now i have to run the pretty old hc11 'cause i got pretty used boards with HC11 on it and i can't replace in the short time, so i am reversing these boards and planning to replace the hc11 with a modern chip such as Atmel Xmega or STM32 (i got a Discovery F board) or Infineon XCM4500 (i got an eval board, too, plus a full licensed version of Keil SDK for ARM plus the jtag cable "j-link").
also, and not the last point, the gnu C and assembly is very very poor about hc11, i am trying Cosmic tools for hc11 and they are light-yeas ahead !
my HC11 boards are about motor injection for sportive old cars, i got the board but not the firmware on it, i am reversing the schematic.