Cambio entre las opciones de PWM

0

Estoy usando un Freescale MC9S08DZ60 , y he escrito el código para aplicar PWM en un pin específico. Este es un intento de efecto de Breaking en el LED, una pregunta que ya tenía. - Efecto de respiración de LED . Aunque el consejo fue correcto, solo hizo que el LED parpadee a intervalos aleatorios. Cambié mi enfoque.

Configuración predeterminada: CONFIGURAR PARA COMPARAR (Fade ON). Incrementa el Registro de valores del canal por el valor de i. Comprueba el valor del registro de valor de canal, luego cambia a BORRAR SALIDA EN COMPARACIÓN (Fade OUT), actualiza el valor de i como antes en el registro de valores de canal.

PERO, cuando el código se muestra, SWITCHES entre las opciones (FADE ON & FADE OUT) solo UNA VEZ. Eso es después del primer cambio entre las opciones, permanece en la opción FADE OUT.

Configuración predeterminada: Módulo Contador = 65535.

Periodo = 4.096ms.

Borde alineado.

En el canal 1.

Acción de salida de PWM: establecer OUtput en la comparación.

Canal de servicio = 4.095ms.

¿Cómo es posible cambiar entre estas dos opciones de PWM?

¿Es el número del temporizador 'TICKS' un atributo que estoy pasando por alto?

Gracias de antemano.

for(;;) 
{

 TPM1C2SC &= 0b11110011; //TO SET OUTPUT ON COMPARE.
 TPM1C2SC |= 0b00000100;  

 TPM1C2VL =~ (i<<1);
 TPM1C2VH += TPM1C2VL; 


 if(TPM1C2V == 255 ) 
  {
   TPM1C2SC &= 0b11110011; // CLEAR OUTPUT ON COMPARE. 
   TPM1C2SC |= 0b00001000;

   TPM1C2VL =~ (i>>1);
   TPM1C2VH += TPM1C2VL;
   i=0;
  }

}  
    
pregunta sheetansh

1 respuesta

1

está configurando TPM1C2SC en un valor en cada iteración del bucle externo, y lo está configurando en un valor diferente para solo una parte de una iteración de cada 65536.

Necesita una variable de estado para mantener un registro de si actualmente se está desvaneciendo o disminuyendo, y solo actualice TPM1C2SC al siguiente valor en cada 65536a iteración. No olvides inicializarlo antes de ingresar al bucle también.

    
respondido por el Dave Tweed

Lea otras preguntas en las etiquetas