Autor Tema: reloj digital con interrupciones???  (Leído 2133 veces)

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

Desconectado cesar gomez

  • PIC10
  • *
  • Mensajes: 13
reloj digital con interrupciones???
« en: 17 de Julio de 2007, 16:28:31 »
Hola a todos… Debo hacer un reloj digital y por ahora lo que tengo es esto…
Active la interrupción por desbordamiento del TMR0 para cada segundo la cual incrementara una variable segundos y así sucesivamente lo hará con minutos y horas….
Pero debo tener un botón que al ser presionado el conteo se detenga “RB0” y con otros tres botones ponga la hora que yo desee y con el mismo botón “RB0” vuelva a colocar en marcha el conteo…. Entonces se utilizó dos interrupciones una que es cuando se desborda el TMR0 en un segundo y la otra cuando se presiona el botón que se encuentra el en pin RB0, se utilizaron prioridades, la mayor prioridad la tiene el botón y la de baja prioridad la tiene el desbordamiento del timer0, bueno mi pregunta es esta, estoy utilizando assembler y el PIC 18f452, y me gustaría saber si esta configuración es correcta ya que no manejo muy bien las interrupciones, otra cosa todo esto se visualizara por la LCD pero no tengo problemas con esto…. Puede que existan muchas formas de hacer este tipo de reloj pero como es para un trabajo la debo hacer así, toda ayuda que me proporcionen se las agradeceré…..

esta son las partes de las cuales no estoy seguro.....


      .
      .
      .
ORG 0X00
goto start
ORG 0X08
goto BOT_ISR         ;interrupcion cuando se presiona RB0
ORG 0X18
goto TMR0_ISR       ;interrupcion cuando se desborda TMR en un segundo
ORG 0X262     

      .
      .
      .
      .
movlw b'11101000'
movwf INTCON
movlw b'00000001'
movwf INTCON2

cuando intento simular por el mplab la parte de la interrupcion por un segundo no se dirige a la interrupcion pasa 1s, 3s, 12s y nada no se dirige a la interrupcion del desbordamiento que la llame TMR0_ISR supuse que debe ser mal configuracion del INTCON...muchas gracias.... :-/








Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: reloj digital con interrupciones???
« Respuesta #1 en: 17 de Julio de 2007, 16:52:51 »
Has configurado la prioridad de la interrupción? Son los registros IPRn
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5490
    • Electrónica Didacta
Re: reloj digital con interrupciones???
« Respuesta #2 en: 17 de Julio de 2007, 18:58:24 »
exacto maunix, debes mirar ese bit para ver donde salta la interrupción y hacer el ajuste correspondiente.


pasos que se pueden hacer:

- configurar el modulo que tenga opción a interrupción.
- se debe seleccionar (habilitar) la fuente de interrupción.
- buscar los bits para activar la prioridad de la interrupción.
- al final se activa el sistema de interrupción global y de allí en adelante comienza a ejecutar el bucle principal.
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado cesar gomez

  • PIC10
  • *
  • Mensajes: 13
Re: reloj digital con interrupciones???
« Respuesta #3 en: 17 de Julio de 2007, 20:34:49 »
Has configurado la prioridad de la interrupción? Son los registros IPRn

---------------------------------------------------------------------------------------------------------------
hola amigo mira pense que la prioridad de la interrupcion estaban en el INTCON2 claro de las que necesito.

INTCON2
bit2 TMR0IP: tmr0 overflow interrupt priority bit
           1= high priority
           0=low priority

con este bit supuse que habia pueste una prioridad baja a la interrupcion de desbordamiento por el TMR0

bit0 RBIP: RB port cahnge interrupt priority bit
           1=high priority
           2=low priority

y supuse que con este, cualquier cambio en el puerto b para para el conteo RB0 haria la interrupcion y quedaria con la mayor prioridad.... porfavor corrigamen si estoy equivocado, ya que en los PIRn encontre prioridades para el USART, TMR1 entre otros pero no los que necesito, muchas gracias por su atencion :-/