Hola, tengo un problema utilizando un PIC18F4550: estoy intentando controlar un servo con él, y tengo configuradas mediante un programa que he escrito (que también hace otras cosas, aunque ahora me estaba centrando en esta función) dos patillas como inputs para incrementar o reducir los anchos de pulso de la señal que es enviada al susodicho servo para que se disponga en un ángulo u otro. El problema se presenta cuando intento detectar estas señales, ya que son digitales activadas por nivel alto, pero por algún motivo hay en estas patillas por defecto (como en la mayoría de las otras) ya un nivel alto de voltaje, que me imagino que se está dando como output por algún motivo, pero el PIC me lo detecta como input también, con lo cual ambas señales son entendidas por el microcontrolador como '1' lógico durante toda la ejecución del programa. He probado a conectarlas a tierra y entonces el programa funciona correctamente (el servo se mantiene en el centro), y si desconecto alguna de ellas de tierra, vuelve al nivel alto de voltaje y el servo gira como si lo activase mediante un interruptor (lo cual era mi idea inicial), con lo que puedo conseguir trabajar con él, pero me gustaría entender por qué pasa esto: por qué en las patillas de entrada tengo por defecto un nivel alto de voltaje.
Supongo que sobra decir que en una simulación de Proteus funciona a la perfección.
Adjunto a continuación en dos mensajes los códigos del main.c y el main.h, respectivamente (el programa lo he escrito con el entorno PIC C Compiler, y he utilizado el asistente de creación de proyectos que incluye para ello, no sé si el problema tendrá que ver con eso, ya que soy novato en la programación de microcontroladores y no sé para que sirven muchas de las opciones del asistente, aunque lo intuya vagamente).
Muchas gracias de antemano por todo, y espero no estar preguntando una obviedad.