Autor Tema: Programar reloj binario en PIC18  (Leído 1103 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado juan_iyo17

  • PIC10
  • *
  • Mensajes: 2
Programar reloj binario en PIC18
« en: 02 de Diciembre de 2015, 15:53:21 »
Hola. Se me pide realizar lo siguiente:
- Realice el diseño y la codificacion en lenguaje C para un programa que realice lo siguiente:
--Se desea implementar un reloj que muestre HORA y MINUTO contanto en binario. La HORA sacarla por el PUERTO C y el MINUTO por el PUERTO D. La hora se deberá manejar de 0 a 23
--La medición de tiempo se realizará mediante una señal externa de 60 Hz que se conecta a la pata INT2 del microcontrolador. El microcontrolador detecta los cambios usando interrupciones en transición negativa.
--Se dispone un interruptor (botón momentaneo), conectado a RA0 para poner el reloj a tiempo. El ajuste es de un minuto por cada opresión del botón. Si el botón se deja oprimido no debe de seguir cambiando el valor. Cada vez que los minutos se reciclan (pasan de 29 a 0), la hora se incrementa.

Siempre he sido malisimo en el uso de los timer, así que de favor espero que alguien me pueda ayudar

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Programar reloj binario en PIC18
« Respuesta #1 en: 02 de Diciembre de 2015, 17:56:49 »
Puedes compartir tu código, así no se puede afirmar algo y todo cae en el campo de la especulación.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado juan_iyo17

  • PIC10
  • *
  • Mensajes: 2
Re:Programar reloj binario en PIC18
« Respuesta #2 en: 03 de Diciembre de 2015, 03:34:07 »
Lo que pasa es que nisiquiera se como empezarlo, no tengo ningun codigo creado. Por eso pido ayuda

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Programar reloj binario en PIC18
« Respuesta #3 en: 03 de Diciembre de 2015, 04:15:21 »
Citar
- Realice el diseño y la codificacion en lenguaje C para un programa que realice lo siguiente:

Todo va a depeder del compilador que uses. Asi que vas a tener que decir cual es.

Citar
Se desea implementar un reloj que muestre HORA y MINUTO contanto en binario. La HORA sacarla por el PUERTO C y el MINUTO por el PUERTO D. La hora se deberá manejar de 0 a 23

Esto facilita las cosas, lo hace mucho mas facil. Solo necesitas mantener 3 variables que serian segundos, minutos y horas.

Citar
--La medición de tiempo se realizará mediante una señal externa de 60 Hz que se conecta a la pata INT2 del microcontrolador. El microcontrolador detecta los cambios usando interrupciones en transición negativa.
Esto te dice que no necesitas usar un timer, sino que con una interrupcion externa, contas cuando pasen 60 de esos, y aumentas 1 segundo. luego corregis los segundos si es que sea pasaron. algo muy simple de hacer.

Citar
--Se dispone un interruptor (botón momentaneo), conectado a RA0 para poner el reloj a tiempo. El ajuste es de un minuto por cada opresión del botón. Si el botón se deja oprimido no debe de seguir cambiando el valor. Cada vez que los minutos se reciclan (pasan de 29 a 0), la hora se incrementa.

Un poco mas complejo por el hecho de que si o si necesitas poner una comprobacion de que si se presiono por mucho tiempo no aumente. Pero es bastante simple de implementar en el while, ya que no va a haber otro codigo dentro.

Asi que tenes que realizar:

Una funcion que es la interrupcion. Con un contador, que cuando cuente 60, se ponga a 0 el contador y aumente 1 segundo. tambien que corriga los segundos , minutos y horas luego de aumentar el segundo. ademas actualizara las salidas

El main, el cual en el while va a solamente leer el boton, y podes usar los segundos para que cuando se presione por mas de 1 segundo no haga nada. y si es menos entonces auemnte. Ademas agregas el codigo de corregir los minutos de 59 a 0 aca tambien.

Si ya con eso no lo haces realmente te tendria que dar el codigo completo, por que es demasiado simple.
Otra cosa que no se nombro es el PIC que van a utilizar., Pero asumi que INT2 tiene asociado una interrupcion externa al dar el flanco.
Tambien hay otra forma que no usas interrupciones y que se puede hacer todo en el while. Pero es un poco mas complejo de realizar, pero es posible
« Última modificación: 03 de Diciembre de 2015, 08:30:03 por KILLERJC »

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:Programar reloj binario en PIC18
« Respuesta #4 en: 03 de Diciembre de 2015, 07:30:22 »
Ya comprendí tu pregunta. Deberías indicar en que lenguaje deseas escribir tu proyecto. Una sugerencia es realizar por partes el código y verificando que funcione y agregar las siguientes partes.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32


 

anything