Con exclusión de los nombres diferentes de los registros y de los bits, este módulo es una muy buena copia del módulo CCP1 puesto en modo normal. La única diferencia significativa entre ellos es el funcionamiento en modo de comparación del módulo CCP2. La diferencia se refiere a la señal de reinicio del temporizador T1. Concretamente, si el convertidor A/D está habilitado, al igualarse los valores de los registros TMR1 y CCPR2, la señal de reinicio del temporizador T1 iniciará automáticamente la conversión A/D. Similar al módulo anterior, este circuito también está bajo el control de los bits del registro de control. Esta vez es el registro CCP2CON.
Registro CCP2CON
DC2B1, DC2B0 – PWM Duty Cycle Least Significant bits (bits menos significativos del ciclo de trabajo de PWM) – Se utilizan sólo en modo PWM y representan dos bits menos significativos de un número de 10 bits. Este número determina el ciclo de trabajo de la señal PWM. Los demás 8 bits se almacenan en el registro CCPR2L.
CCP2M3 – CCP2M0 – CCP2 Mode Select bits (bits de selección de modo del módulo CCP2) determina el modo del módulo CCP2.
CCP2M3 | CCP2M2 | CCP2M1 | CCP2M0 | MODO |
---|---|---|---|---|
0 | 0 | 0 | 0 | Módulo está deshabilitado (reinicio). |
0 | 0 | 0 | 1 | No utilizado. |
0 | 0 | 1 | 0 | No utilizado. |
0 | 0 | 1 | 1 | No utilizado. |
0 | 1 | 0 | 0 | Modo de Captura |
Cada flanco descendente en el pin CCP2. | ||||
0 | 1 | 0 | 1 | Modo de Captura |
Cada flanco ascendente en el pin CCP2. | ||||
0 | 1 | 1 | 0 | Modo de Captura |
Cada cuarto flanco ascendente en el pin CCP2. | ||||
0 | 1 | 1 | 1 | Modo de Captura |
Cada decimosexto flanco ascendente en el pin CCP2. | ||||
1 | 0 | 0 | 0 | Modo de comparación |
La salida y el bit CCP2IF se ponen a 1 al ocurrir una coincidencia. | ||||
1 | 0 | 0 | 1 | Modo de comparación |
La salida se pone a 0 y el bit CCP2IF se pone a 1 al ocurrir una coincidencia | ||||
1 | 0 | 1 | 0 | Modo de comparación |
Se produce una interrupción, el bit CCP2IF se pone a 1 y no hay cambio el pin CCP2 pin al ocurrir una coincidencia. | ||||
1 | 0 | 1 | 1 | Modo de comparación |
Al ocurrir una coincidencia, el bit CCP2IF se pone a 1, los registros del temporizador 1 se borran y la conversión A/D se inicia si el convertidor A/D está habilitado. | ||||
1 | 1 | x | x | Modo PWM |
¿Cómo configurar e iniciar el módulo CCP1 para funcionar en modo PWM?
Para configurar e iniciar el módulo CCP1 para funcionar en modo PWM, siga los siguientes pasos:
- Deshabilitar el pin de salida del CCP1. Deberá estar configurado como entrada.
- Seleccionar el período de señal PWM al introducir el valor en el registro PR2.
- Configurar el módulo CCP1 para funcionar en modo PWM al combinar los bits del registro CCP1CON.
- Ajustar el ciclo de trabajo de señal PWM al introducir el valor en el registro CCPR1L y al utilizar los bits DC1B1 y DC1B0 del registro CCP1CON.
- Configurar e iniciar el temporizador Timer2:
- Poner a cero el bit de bandera de interrupción TMR2IF en el registro PIR1
- Ajustar el valor de división de frecuencia del temporizador Timer2 por los bits
- T2CKPS1 y T2CKPS0 del registro T2CON.
- Iniciar el temporizador Timer2 al poner a uno el bit TMR2ON del registro T2CON.
- Habilitar los pines de salida de PWM después de que haya sido acabado un ciclo de PWM:
- Esperar el desbordamiento del temporizador Timer2 (el bit TMR2IF del registro PIR1 se pone a uno)
- Configurar el pin apropiado como salida al poner a cero el bit en el registro TRIS.
No hay comentarios:
Publicar un comentario