Mi traducción: ¡Ayúdame, la escuela está por comenzar de nuevo!
Las estructuras de control se describen generalmente utilizando el diagrama de estructura de interacción de señal en modo de reflexión. Este enfoque se extiende a la implementación DSP del sistema de control. C Redensible ASM es un estándar desarrollado por TI para escribir un bloque de funciones con código ensamblador, en cuyo caso se puede obtener directamente desde C. El uso del ensamblaje reduce las especificaciones de codificación, mejora la velocidad y proporciona un control de bajo nivel sobre los cálculos. Esta técnica es particularmente ventajosa si la estructura de control utiliza un bloque más de una vez. Por ejemplo, el controlador PI de tres bits en el algoritmo FOC se puede ejemplificar en un programa C a partir de un controlador PI ordinario de un bit escrito en ensamblaje. La ventaja de utilizar bloques vinculados a C es que es un lenguaje de más alto nivel que es muy adecuado para manejar variables y controlar el flujo del programa. El código utilizado para implementar el controlador del motor consta de dos módulos principales. Se utiliza un método main() (Figura 9.5) para crear objetos para el bloque del controlador, inicializar los periféricos y configurar los temporizadores e interrupciones necesarios. Luego, este método espera un bucle continuo mientras se interrumpe periódicamente en la frecuencia de conmutación PWM deseada. Todo el algoritmo de control se implementa como un módulo separado dentro de esta rutina de interrupción.
La primera tarea de cualquier programa es configurar el contador de control del sistema. Esto se hace cargando 0x0089 en SCSR1 para habilitar el ADC, la interfaz de programación en serie y el alimentador de eventos A. En este documento no se utiliza ningún algoritmo de control utilizando el alimentador de eventos B, por lo que está deshabilitado. Luego, SCSR2 se configura en 0x004B, que es el valor predeterminado para la operación DSP estándar. Finalmente, el mecanismo de vigilancia se desactiva cargando 0x68 en el registro de control de vigilancia WDCR.