You are on page 1of 1

PWM

setup_ccp1(CCP_PWM); ///esto al principio del programa


al modificar x modifico la frecuencia
al modificar time ajusto el tiempo de encendido
duty lo utilizo para modificar el ancho de pulso
void pulso(int x, long time,int duty)
{
setup_timer_2(T2_DIV_BY_16, x, 1);
set_pwm1_duty(duty);
delay_ms(time);
set_pwm1_duty(0);
}
la formula para obtener el valor que va en x es
x=[1/(frecuencia*4*Tosc*16)] -1 el numero 16 es el valor que se le da al timer 2
puede ser 16, 4 o 1.
Tosc es igual a 1/ (valor del oscilador)

You might also like