Acabo de efecutar esa modificacion del PLL pero el problema persiste. La verdad no entiendo muy bien todo lo de los FUSES, si alguien puede darme una mano porque quizas ahi haya conflictos en la definicion del clock, etc. El wizard que propone CCS para el 1939 es bastante extenso y no tengo otro PIC en este momento como para "jugar"
Los fuses no son mas que unos registros que en la mayoria de los PICs no son modificables por software, sino que se realizan cuando vos lo grabas.
Ahi seleccionas que tipo de oscilador usas, interno, externo, cristal o un reloj por un solo pin, etc. Proteccion de datos / codigo, WDT enable, etc
Lo tenes en el data sheet como Configuration Bits o en tu datasheet Configuration Words (pag 63).
Si estas usando un cristal de 20 Mhz externo, deberias de cambiar estos fuses
#FUSES ECH //External clock with CLKOUT(PIC18), high power
Donde seleccionas al oscilador como HS, asi los pines osc2 y osc1 son para el cristal. (HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT pin and RA7/OSC1/CLKIN)
Si ya despues de eso no funciona, te podria decir que sacaras lso delays, dejaras una salida y midieras cada cuanto cambia la salida, para obtener un valor de la frecuencia de entrada y verificar que son los 20 Mhz, sino pasa por el tema del compilador.
En fin tratar de quitar posibles problemas e ir aislando el problema que verdad aqueja :
- Configuracion del OSC del PIC.
- Verificar que el PIC este trabajando a la velocidad correcta.
- Revisado el Hardware y funcionando perfectamente volcar la atencion al software.