If neccessary, you may use timers to make 1Hz pulse.
Timer0 has itself the prescaler upto 1/256. With 4MHz osc, you get 256 us to increment timer0 register.
1 Hz => 1 second = 1,000,000 us.
256 * 256 = 65536. And you need only about 15 times more.
Using interrupts, you can get it.
Do this loop forever:
pulse width = P ; P = 255*X
; if X > 255 then X = 255 * Y
bsf a pin
move Y to temp
as interrupts decrement Y until Y = 0
bcf the pin
compute temp = 255*255 * 15 (for example) - P
wait interrupts and decrement Y' until Y'=0
return to loop
You can get 1Hz pulse.
In this case, the resolution is 256us.
If you need better resolution you can use prescaler at 1/16. It's oki, because 16*256*256 > 1000000 us.
Goodluck.