Autor Tema: Ayuda con TMR1 en PIC16F628A  (Leído 2757 veces)

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

Desconectado CoreMain

  • PIC10
  • *
  • Mensajes: 26
Ayuda con TMR1 en PIC16F628A
« en: 14 de Noviembre de 2008, 00:29:02 »
 :-/Hola, soy nuevo en el foro....

Estoy aprediendo sobre interrupciones con el PIC 16F628A
Puedo manejar las interrupciones con TMR0 pero no puedo con TMR1
Este es un programa (PicBasicPro) muy sencillo con el que traté de familiarizarme con el TMR1 pero no me funciona en la práctica: se trata de dos LEDs conectados en RA.0 y RA.1.
El LED en A.0 está oscilando y el LED en A.1 se debe encender cuando ocurra la interrupción.
El prescaler para TMR1 está en 1:8, y el LED en A.1 se debe encender 1/2 segundo después de inicie el programa.
___________________________________________________________________________________
Ahora, el problema es que la interrupción no ocurre. Alguien me puede decir por favor en donde está el error?
___________________________________________________________________________________
Aquí está mi programa:

*********************************************************************************
;DEVICE: PIC16F628A
T1CON=%00110001    ;habilita interrupción en TMR1 y conf prescaler 1:8
PIE1=%00000001
INTCON=%10000000
PIR1.0=0
cmcon=7
trisa=%00000000
TMR1H=0
TMR1L=0
porta.1=0

ON INTERRUPT GOTO inte

leds:
       TOGGLE porta.0
       PAUSE 300             
       GOTO leds

DISABLE
;-----------------------------------
;HANDLER INTERRUPCION
inte:
     TMR1H=0
     TMR1L=0
     HIGH porta.1
     PIR1.0=0
     RESUME
ENABLE
;-----------------------------------
*******************************************************************

Me salvarian la vida si me ayudan!
 
Gracias y saludos desde Ecuador

_______________________________
Over the Hills and Far Away...

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Ayuda con TMR1 en PIC16F628A
« Respuesta #1 en: 14 de Noviembre de 2008, 08:07:28 »
Hola amigo:


Creo que te falta habilitar el permiso de interrupcion del TMR1. Lo que estas realizando es lo siguiente:
T1CON=%00110001    ;habilita interrupción en TMR1 y conf prescaler 1:8. Aqui no habilitas la interrupcion, sólo pones en funcionamiento el TMR1


PIE1=%00000001. Aqui habilitas la interrupcion de TMR1
INTCON=%10000000. Aqui habilitas el bit general para permitir las interrupciones. Pero las imterrupciones del tMR1 no se controlan con el registro INTCON si no que están en otro registro "PIE" y para que este funcione tienes que colocar el Bit"6" del registro INTON y te deberia quedar de la siguiente forma:

[color=blue]T1CON=%00110001    ;habilita interrupción en TMR1 y conf prescaler 1:8
PIE1=%00000001
INTCON=%11000000.[/color]
Si no me he equivocado es ese el problema.

Esto lo puedes ver en la pagina 23 del datasheet.

F.

Todos los días se aprende algo nuevo.

Desconectado CoreMain

  • PIC10
  • *
  • Mensajes: 26
Re: Ayuda con TMR1 en PIC16F628A
« Respuesta #2 en: 14 de Noviembre de 2008, 19:32:16 »
Lo probé... y Funciona!
Gracias Fer_TACA

Y excelente foro de micros.
_______________________________
Over the Hills and Far Away...

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4154
Re: Ayuda con TMR1 en PIC16F628A
« Respuesta #3 en: 14 de Noviembre de 2008, 20:40:35 »
De nada :mrgreen:

Pa eso estamos :lol:

F.
Todos los días se aprende algo nuevo.