Está en la página 1de 3

PWM

Pasos para generar mi pwm:

Cristal= valor interno o externo (ejem. 4 MHz, 20 MHz etc.)


TOSC = 1 / valor del cristal
TMR2 preescaler = T2_DIV_BY_16 en este caso es 16 como bien
puede ser 1 o 4.

1.- habilitamos el pwm, indicando que se va usar el modulo


como pwm ya que dicho modulo es compartido con varias
funciones.
Es posible el que el micro tenga 2 mdulos CCP, y por lo tanto 2 pwm,
podemos habilitar uno o los 2
mdulos independientemente, sin
embrago como ambos usan el registro PR2 y el timer TMR0 como base
de tiempo la frecuencia programada ser la misma para los 2 pwm, lo
que si ser posible variar ser el ciclo de trabajo del pwm.

FUNCIONES:
La funcin setup_timer_2(T2_DIV_BY_16, 255 ,1) programa el timer 2
del micro.
El primer parmetro setup_timer_2(T2_DIV_BY_16, 255 ,1) es un
preescaler, es decir, un divisor, divide la frecuencia del micro entre 16
as como T2_DIV_BY_4 divide la frecuencia entre 4.
El segundo parmetro setup_timer_2(T2_DIV_BY_16, 255 ,1) es un
numero de 8 bits (de 0 a 255) quiere decir que deseamos todo el periodo
que el oscilador dividido por el preescaler pueda dar. Si colocramos 123
indicaramos que queremos la mitad del mismo.
Para un PWM de 10
bits significa que admitir valores entre 0 y 1023 internamente el micro
lo que har es ajustar el tiempo al ciclo de trabajo que se haya escogido
por ejemplo si se escoge 512 para el PWM de 10 bits significara que la
tensin media es la mitad de la tensin de alimentacin. Este dato
determina cuando el reloj se reinicia.

El tercer parmetro setup_timer_2(T2_DIV_BY_16, 255 ,1) son las veces


que el timer se reiniciara antes de una interrupcin, esto es, las veces
que habr la interrupcin de un nivel de bajo a alto de tu pwm antes de
una interrupcin. Se usa para saber cundo activar la interrupcin
Ejemplo de generacin de PWM con frecuencia constante y dutycicle
variable.

Ejemplo de generacin de PWM de frecuencia variable y dutycicle


constante (50%)

http://hzsquare.blogspot.mx/2011/11/generacion-de-pwm-con-picpic-c-de-css.html

También podría gustarte