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; }