hola rabacero
talvez esto te sirva, es lo que dice tu problema pero a otra frecuencia y con otro cristal
------------------------------------------------------------
#include <16F877A.h>
#fuses XT,NOWDT,NOPROTECT,NOLVP,PUT,BROWNOUT
#use delay(clock=4000000)
#byte PORT_B=0x06
#byte PORT_C=0x07
#bit RB0=0x06.0
#bit RB1=0x06.1
int PM1=0;
void main()
{
set_tris_b(0x03);
set_tris_c(0x00);
PORT_C=0x00;
//configuracio de PWM
SET_TIMER2(0);
SETUP_CCP1(CCP_PWM_PLUS_1);
SETUP_TIMER_2(T2_DIV_BY_16,0xC8,0x01); //C6 equal 198
PM1=0;
SET_PWM1_DUTY(PM1);
while(true)
{
if(RB0==1&&PM1<0xC8) //incrementa si es menor al periodo del PWM
{ delay_ms(25);
if(RB0==1) //si se press MODO
{PM1++;}
}
if(RB1==1&&PM1>0)
{ delay_ms(25);
if(RB1==1) //si se press MODO
{ PM1--; }
}
SET_PWM1_DUTY(PM1);
}
}
------------------------------------------------------------
y creo que el problema es el valor del Cristal que usas, aca (
http://www.micro-examples.com/public/microex-navig/doc/097-pwm-calculator ) podes calcular los parámetros para configurar el PWM
SETUP_TIMER_2(TIMER2 Prescaler,PR2,0x01);
y probando con el valor que decís no da a ninguna frecuencia de PWM
salu_2 a to_2