Gracias por Responder, si efectivamente el timer1 de este PIC tienes algunas cualidades que jamas había visto en la serie 18F y ahí mi confusión, luego de hacer algunas pruebas y leer cuidadosamente el DataSheet del 18F46K80, usar el CCP1 junto al timer1 no es posible, pues este esta reservado para el ECCP1, esta tabla muestra como deben ser usados en conjunto:
(https://lh6.googleusercontent.com/-YDgvXDozLNE/T6QES5zONEI/AAAAAAAAA38/7G5AfO7Kel4/s912/Tabla-1.gif)
Ademas de esto requiero el uso de los vectores de interrupción de baja y alta prioridad, la configuración del PORT.C usa solo uno por lo que he modificado el archivo así: donde cambie algunos nombres y especificando el uso del CCP2, donde se usa PIR1bits.CCP1IF por PIR3bits.CCP2IF
static void High_Interrupt(void);
#pragma code high_vector=0x08
static void High_Interrupt(void) {
/* Was the interrupt the tick? */
if (PIR3bits.CCP2IF) {
_asm goto prvTickISR _endasm
}
}
#pragma code
Para la configuración del CCP, use el modulo2 dejándolo así;
ulCompareValue = ulConstCompareValue;
CCPR2L = (unsigned char) (ulCompareValue & (unsigned long) 0xff);
ulCompareValue >>= (unsigned long) 8;
CCPR2H = (unsigned char) (ulCompareValue & (unsigned long) 0xff);
CCP2CONbits.CCP2M3 = portBIT_SET; /*< Compare match mode. */
CCP2CONbits.CCP2M2 = portBIT_CLEAR; /*< Compare match mode. */
CCP2CONbits.CCP2M1 = portBIT_SET; /*< Compare match mode. */
CCP2CONbits.CCP2M0 = portBIT_SET; /*< Compare match mode. */
CCPTMRSbits.C2TSEL = portBIT_CLEAR;
PIR3bits.CCP2IF = portBIT_CLEAR;
IPR3bits.CCP2IP = portBIT_SET; /*< Interrupt priority. */
PIE3bits.CCP2IE = portBIT_SET; /*< Interrupt enable. */
En la configuración de las Interrupciones así:
RCONbits.IPEN = 1; // Habilita los niveles de interrupcion
INTCONbits.GIEH = 1; // Habilita las interrupciones de alto nivel
INTCONbits.GIEL = 1; // Habilita las interrupciones de bajo nivel
Ya para finalizar la configuración del Timer1:
unsigned char config1 = 0x00;
unsigned char config2 = 0x00;
config1 = T1_16BIT_RW & T1_PS_1_1 & T1_SOURCE_FOSC & T1_OSC1EN_OFF;
config2 = TIMER_GATE_OFF & TIMER_GATE_INT_OFF;
OpenTimer1(config1, config2);
Y Ahora si, tengo el FreeRTOS funcionando, gracias por la ayuda y espero que les sirva esto.