Con este modo de trabajo, se consiguen impulsos lógicos cuya anchura del nivel alto es de duración variable. El módulo CCPx donde x puede ser 1 o 2 dependiendo, se logra obtener por el pin CCPx una salida digital mediante su registro TRISC correspondiente, una señal periódica, con parte de la señal en alto y parte de la señal en bajo o toda la señal en alto o toda la señal en bajo.
La parte de la señal obtenida por el pin CCPx que está en alto se conoce como ciclo de trabajo y es representado por el valor almacenado en el registro CCPRxL, el tiempo que la señal está a nivel bajo se conoce como periodo de la señal y es representado por el valor almacenado en el registro PR2.
Para esta forma de trabajo del módulo CCP se hace uso del TMR2 y de su registro PR2. El valor almacenado en el registro CCPRxL que es el valor que representa el ciclo de trabajo de la señal PWM que se mantiene a 1, se cargará en el registro CCPxH.
El valor del registro CCPxH se compara permanentemente con el valor que va tomando el registro TMR2 y cuando se hacen iguales el pin CCPx se pondrá a nivel bajo, de esta manera se fija el ancho de pulso, y como el TMR2 seguirá aumentando de valor, hasta que este se haga igual nuevamente al valor almacenado en el registro PR2, momento en el cual el registro TMR2 se hará igual a 0 y el ciclo anterior volverá a repetirse.
Para obtener la salida PWM por el pin CCPx de tienen que cargar el periodo de la señal mediante un valor en el registro PR2 y además establecer un ciclo de trabajo mediante un valor cargado en el registro CCPRxL.
El tiempo que dura la onda es:
Período = [(PR2) + 1] • 4 • Tos • Valor Predivisor TMR2
Y para la anchura de pulso:
Anchura de impulsos = (CCPR1L:CCP1CON<5:4>) • Tosc • Valor Predivisor TMR2
Programa:
https://mega.nz/#!GUsyEQhY!5-ZO5F9iIaiT9X9WSxfB6zuObGg3YBGT8t00kjiYeco
https://mega.nz/#!7ZU1CCjL!2FO0wl1mCa7bLGpME_QaITNIJHbk648Z5D_5HSGwhEs
https://mega.nz/#!yYsl1SQK!WYJvmakpOeai1b_BDkDjzL8aVd6H-1axGOqaEUPgob4
https://mega.nz/#!GUsyEQhY!5-ZO5F9iIaiT9X9WSxfB6zuObGg3YBGT8t00kjiYeco
https://mega.nz/#!7ZU1CCjL!2FO0wl1mCa7bLGpME_QaITNIJHbk648Z5D_5HSGwhEs
https://mega.nz/#!yYsl1SQK!WYJvmakpOeai1b_BDkDjzL8aVd6H-1axGOqaEUPgob4
Referencia Bibliográfica:
Milan Verle (2008). PIC Microcontrollers – Programming in Assembly. Editorial MikroElektronika.
No hay comentarios:
Publicar un comentario