Módulo PWM

Muestra las funciones para poder trabajar con el módulo PWM Interno de los PIC.Todas las ecuaciones estan en segundos.Tosc es la inversa de la frecuencia del cristal FOSC_HZ.

	Periodo=(Pr2+1)*4*Tosc*PreescalerTMR2
	TiempoPulsoAlto=CCPR1L_CCP1CON54*Tosc*PreEscalerTmr2
		

	#include <pwm.h>

	#define TMR2_PREESCALER_1  0
	#define TMR2_PREESCALER_4  1
	#define TMR2_PREESCALER_16 2
		

pwm1_set_data

Configura el módulo PWM1 del PIC, es necesario indicar el Preescaler y el CCPR1L_CCP1CON54

void pwm1_set_data( BYTE Pr2,BYTE PreescalerTMR2,int16 CCPR1L_CCP1CON54);
		

pwm2_set_data

Configura el módulo PWM2 del PIC, es necesario indicar el Preescaler y el CCPR2L_CCP2CON54

void pwm2_set_data( BYTE Pr2,BYTE PreescalerTMR2,int16 CCPR2L_CCP2CON54);
		

Ejemplo de PWM

para compilar necesitas los siguientes comandos

Ejemplo de compilacion : ./compila.sh ej_pwm 16f877a
		

ej_pwm.c

#include <pic/p16f877a.h>

#define FOSC_HZ 20000000

#include <delayms.h>
#include <pwm.h>

int main (void)
{
	delayms(100);

	pwm1_set_data(224,TMR2_PREESCALER_1,301);
	pwm2_set_data(224,TMR2_PREESCALER_1,301);

	while(TRUE);
	return 0;
}