Вы находитесь на странице: 1из 1

COMO EL PWM ES DE 20KHZ Y configuro preescala=1,Tpwm=50 Us, cristal de

20Mhz
50us=(x+1)*4*(1)*(1/20Mhz)*1
X=249 que se puede poner de 250

En el código se debe poner asi


setup_timer_2(T2_DIV_BY_1,250,1);
ahora calculamos l valor del bits con el que debe cambiar el ciclo
util

20𝑀ℎ𝑧
log ( )
𝑛= 20𝑘ℎ𝑧 ∗1 𝑛 = 9.965784285
log(2)

Ese valor lo llevamos a la forma 2𝑛 𝑑𝑜𝑛𝑑𝑒 29.965784285 = 1000


El duty cycle es configurado entonces por la siguiente instrucción:

set_pwm1_duty(valor);

Donde si valor vale 0, tendre un ciclo de trabajo del 0%, si valor vale 1000, tendré un ciclo de
trabajo de 100%, si valor vale 500, tendré un ciclo de trabajo de 50%

Ejemplo

Generar pwm de 25khz


1 1
= (𝑥 + 1) ∗ 4 ∗ (1) ∗ ( )∗1 𝑥 = 199 𝑠𝑒 𝑝𝑢𝑒𝑑𝑒 𝑝𝑜𝑛𝑒𝑟 200
25𝑘ℎ𝑧 20𝑀ℎ𝑧
20𝑀ℎ𝑧
log ( )
𝑛= 25𝑘ℎ𝑧 ∗1 𝑛 = 9.64385619
log(2)

Ese valor lo llevamos a la forma 2𝑛 𝑑𝑜𝑛𝑑𝑒 29.64385619 = 800

Вам также может понравиться