Autor Tema: interrupcion externa y tmr0 al mismo tiempo ?  (Leído 2947 veces)

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

Desconectado alexrod

  • PIC10
  • *
  • Mensajes: 14
interrupcion externa y tmr0 al mismo tiempo ?
« en: 17 de Septiembre de 2006, 02:48:46 »
saludos, puedo abilitar interrupcion externa ( rb7) y el tmr interno modo timer al mismo tiempo, es decir correr el programa alerta de interrupcion externa y el timer corriendo tras bambalinas, cada uno con su rutina de interupcion, es tecnicamente posible.....pic 16f84 , programo en hibrido (basic - asembler )  desde ya gracias.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: interrupcion externa y tmr0 al mismo tiempo ?
« Respuesta #1 en: 17 de Septiembre de 2006, 02:54:54 »
Claro que es técnicamente posible, aunque no sé cómo se hace en Basic y ASM, sino en C.

Pero no hay ningún inconveniente en tener varias fuentes de interrupción habilitadas simultáneamente.

De hecho, las dos interrupciones que mencionas suelen habilitarse a la vez en aplicaciones como cuentarrevoluciones, frecuencímetros o tacómetros.

Desconectado alexrod

  • PIC10
  • *
  • Mensajes: 14
Re: interrupcion externa y tmr0 al mismo tiempo ?
« Respuesta #2 en: 17 de Septiembre de 2006, 03:09:23 »
muchas gracias mr. nocturno, no me quedava del todo claro, solo devo habilitar bit 5 ( para timer )  y  bit 4 ( externa ) de registro intcon,  ,, te lo agradesco ahora procedo a realisar el programita ( que me llevara algun timpo y eso que sera sencillito :-) ya saben soy nuevo en esto y apenas he realisado programitas y circuitos basicos pero me siento como un leon.....seguro saven de que les hablo. un placer

Desconectado edutd

  • PIC10
  • *
  • Mensajes: 27
Re: interrupcion externa y tmr0 al mismo tiempo ?
« Respuesta #3 en: 17 de Septiembre de 2006, 09:01:46 »

Hola,si no me equivoco, rutina de interrupción solo vas a tener una, aunque tengas habilitadas dos interrupciones, la cosa esta en que dentro de la rutina tienes que ver que interrupción se ha producido, si se produce la interrupción externa el bit 1 (INTF) del INTCON se pone a 1, si se produce la interrupción del timer 0 se pone a 1 el bit 2 (TOIF).
Luego no olvides poner estos bits a 0.
Un saludo.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: interrupcion externa y tmr0 al mismo tiempo ?
« Respuesta #4 en: 17 de Septiembre de 2006, 11:38:08 »

Hola,si no me equivoco, rutina de interrupción solo vas a tener una, aunque tengas habilitadas dos interrupciones, la cosa esta en que dentro de la rutina tienes que ver que interrupción se ha producido, si se produce la interrupción externa el bit 1 (INTF) del INTCON se pone a 1, si se produce la interrupción del timer 0 se pone a 1 el bit 2 (TOIF).
Luego no olvides poner estos bits a 0.
Un saludo.

En los pic16F, hay un solo "vector de interrupción", pero eso no significa que haya una sola "rutina de interrupción".

Saludos
- 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)

Deimos

  • Visitante
Re: interrupcion externa y tmr0 al mismo tiempo ?
« Respuesta #5 en: 18 de Septiembre de 2006, 03:43:34 »
Exacto. Dentro del vector de interrupcion haces un polling testeando los flags de interrupcion que se han activado para reconocer la interrupcion. En el 16F84 solo hay un vector interrupcion que si mal no recuerdo está en 0x04.  :?

Puedes activar todas las interrupciones del micro. En aplicaciones reales, lo natural es tener muchas interrupciones activadas. Y en aplicaciones en tiempo real, es casi obligado hacerlo todo por el sistema interruptivo de la maquina. El teclado de tu ordenador sin ir mas lejos funciona por intrr. Cada vez que pulsas una tecla se genera una intrr. Y el mouse tambien. :-)

No hay ningun problema en activar varias intrr para que se ejecuten cuando toque.