PWM=Modo de modulacion de anchura de pulsos
Este modulo sirve para obtener impulsos logicos cuya anchura del nivel alto es variable(Anchura variable=Duty Cycle)
El tiempo que dura el periodo de la onda viene determinado por el valor cargado en PR2(tener en cuenta que PR2 es la parte alta del TMR2):
Codigo:
Periodo=[ (PR2)+1] · 4 · Tosc · Valor Preescaler PR2
Cuando el valor del TMR2=PR2 ocurren tres acontecimientos:
Codigo:
1. Se borra TMR2
2. La patita del CCP1 se pone a 1
3. El valor CCPR1L(determina anchura del pulso) se carga en CCPR1H
Para obtener la anchura del pulso:
Codigo:
Anchura del pulso=(CCPR1L:CCP1CON<5:4> ) · Tosc·Valor Preescaler TMR2
Pasos para configurar PWM:
Codigo:
1. Asignar el periodo cargando valor oportuno en PR2
2. Asignar la anchura del pulso(Duty Cycle)
3. Configurar CCP1 como salida
4. Asignar valor predivisor y activar TMR2
5. Configurar modulo CCP1 como PWM.
Asi lo hago yo.....no se si ha quedado claro....de todas formas mirate estas transparencias:
http://www2.ate.uniovi.es/8696/transp.htm
Clave: micro
Suerte!!!