Si, es cierto. Básicamente hay que emular con software lo que está implementado por hardware en el módulo PWM del uC. En este caso lo que se controla son los variadores de velocidad de los motores brushless, me parece que le llegue un pulso de 2mseg (acelerado a fondo) cada tanto no va a ser nada bueno para el control.
La otra alternativa, que incluso me permitiría ganar en resolucion del PWM es, durante los 2mseg (de los 20) en donde el PWM se puede mover es adueñarme del micro y hacer solo el PWM. O sea, cuando entra a la interrupcion del timer que indica que arranco con el PWM no salgo de la misma hasta que hallan pasado los 2mseg. De este modo, se evita el problema de cambio de duty mientras estoy en el medio del PWM... por otra parte cuando el PWM esta manejado por interrupcion pasa que si dejo el duty en un valor dado, a veces tengo un ancho de pulso y aveces tengo otro muy parecido si lo veo con el osciloscopio. Esto debe ser por el codigo ASM que se genera, que dependiendo como entra puede haver alguna instruccion mas. En cambio si toda la temporizacion la hago a mano puedo hacer que siempre se obtenga el tiempo exacto. Me explico?
La contra es que durante 1-2 mseg la aplicacion no puede hacer otra cosa. Lo cual no sé si es muy crítico ya que la señal del radio control se actualiza a 50Hz... por lo tanto si yo ocupo 2 mseg todavia tengo tiempo de ejecutar 2 o 3 actualizaciones de los PID antes de que decibir nuevos Set Point... voy bien con el razonamiento?
Saludos!