Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

PWM por software

6 Respuestas
4 Usuarios
0 Reactions
4,294 Visitas
ionthas
Respuestas: 153
Topic starter
(@ionthas)
Estimable Member
Registrado: hace 17 años

Buenas a todos.

He estado haciendo cosillas con mi Skybot y ahora toca utilizar el PWM. En primer lugar mí pregunta seria.

¿Un SkyBot puede hacer PWM por Hardware?

En caso de que sea, no.

¿Me podeis recomendar algun método para implementarlo mediante software? (Lo he estado haciendo con delays, me han dicho que no es buena idea).

En caso de que sea, sí.

¿Me podeis pasar documentacion de como usarla? (Estoy un poco perdido)

Saludos y muchas gracias.

Responder
5 respuestas
dragonet80
Respuestas: 1328
(@dragonet80)
Ardero
Registrado: hace 18 años

Aquí va un petit codi d'exemple en el CCS:
#include <16f876A> //pic a utilizar
#fuses HS,NOWDT,NOPROTECT,PUT //instrucciones
#use delay (clock=20000000) //Frecuencia del reloj=20Mhz
INT duty_esq,duty_drt;

//configura PWM
SETUP_CCP1(CCP_PWM); // Configura CCP1 com a PWM ---ESQUERRE--- rc2 port C patilla 12
SETUP_CCP2(CCP_PWM); // Configura CCP2 com a PWM ---DRETA------ rc1 patilla 13
setup_timer_2(T2_DIV_BY_1, 255, 1);
while(1) {
duty_esq=10;
duty_drt=90;
SET_pwm1_duty(duty_esq);
SET_pwm2_duty(duty_drt);
delay_ms(1000);
duty_esq=90;
duty_drt=10;
SET_pwm1_duty(duty_esq);
SET_pwm2_duty(duty_drt);
delay_ms(1000);
}

Este ejemplo cambia cada segundo el duty cycle de las dos salidas pwm, del 10% al 90% sucesivamente.

Responder
Página 2 / 2
Compartir: