Hi,
Yes, it's probably a timer problem. You have TMR1 set up to derive its clock from the main oscillator (Fosc/4) so 10Mhz in your case. (Your code comments says you have a prescaler of 8 but you don't - it's 1:1.

TMR1 is a 16bit timer and generates an interrupt when it overflows from $FFFF to $0000. In your case this means that the interrupt frequency is 10MHz/65536 = 152.6Hz. In other words, the pwmint interrupt service routine is executed 156 times per second.

If a complete sinus cycle consists of 256 "steps" you should get a frequency of 152.6/256=0.6Hz but you claim 0.25Hz so I'm not sure what's going on exactly.

If you want to speed up the frequency you must increase the interrupt frequency. You do this by preloading TMR1 in the interrupt service routine so that it doesn't have to count all the way from 0. If you, for example, preset it to 32768 you'll get twice as many interrupts per second as when letting it free run.

/Henrik.