Hola al foro,
Estoy realizando un proyecto con el PIC 16F877 basado en una estación domótica, que implementa diversas funciones tales como control de calefacción del hogar, control de temperatura, sensor de humos, y conexión vía modem para realizar una llamada telefónica en caso de intrusión. El proyecto se divide en módulos, el problema me surgió cuando tuve que desarrollar el módulo para la gestión del reloj en tiempo real. Este está formado basicamente por dos rutinas, una urgente, y una menos urgente. La rutina urgente esta mapeada como interrupción, y se ejecuta con cada interrupción de 1mseg por timer0. En esta se incrementa un contador de mseg y cuando este llega a 60000 (ahi esta el problema, que no se como comparar una variable con 60000!!!) es decir, un minuto, activa un flag que será usado en la rutina principal para incrementar los minutos y las horas (esta es la parte no urgente, en el lazo principal). No sé si se abrá entendido algo, si es así, les pido que me ayuden con el tema de la comparación con un valor tan alto.
Bueno, otra cosa, si alguien me dice que por qué no aumento al máximo el prescaler, le diré que en ese caso tendría que comparar con 923, ya que el máximo valor del prescaler es de 65mseg.
Otro problema que también se me plantea es cómo mostrar esto por el LCD. El programa lleva una subrutina aparte en el lazo principal que se encarga de mostrar por pantalla lo que le llega en base a una máquina de estados. Ahora bien, si a esta le paso dos registros, uno con las horas (0-24) y otro con los minutos (0-60), como puedo mostrar estos valores por el lcd (las rutinas de mostrar las tengo), si los tengo en dos registros de 8 bits cada uno?
Muchísimas gracias de antemano, aceptaré cualquier sugerencia incluso si supone dar un cambio de 180º a la realización del reloj.
Gonzalo