Creo que vos te respondiste
No creo que esto:
setup_timer_3 (T3_CCP1_TO_2);
setup_timer_3 (T3_DIV_BY_2);
setup_timer_3 (T3_INTERNAL);
realize ORs, por que si pensas configurarlo de otra forma, no te queda otra que tener alguna funcion para ponerlo al estado de reset. Si por ejemplo un registro era 0000 0000, vos pusiste 0000 0001 , como harias para volverlo a su estado de reset ( todos 0 ) con una OR ?, es imposible. Deberias proveer otra funcion para resetearlo, visto que no hay funcion para esto, lo logico es pensar simplemente inserta todo eso en el registro que debe sin uso de ORs. Y por lo tanto esto es lo valido:
setup_timer_3 (T3_CCP1_TO_2 | T3_DIV_BY_2 | T3_INTERNAL);