Autor Tema: Duda sobre interrupciones simultaneas  (Leído 6026 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Duda sobre interrupciones simultaneas
« en: 21 de Febrero de 2011, 09:22:15 »
Estoy haciendo un programa para cronometrar el tiempo que dura un suceso externo al pic, usando un 16F877. Con el timer contabilizo cada 0.01 segundo. Lo siguiente que quiero hacer es que cuando se detecte un cambio de estado en RB4:RB7, se compruebe si el tiempo transcurrido es minimo para guardarlo en la eeprom, y poner los contadores a 0; pero mi duda es la siguiente:

Habrá conflicto entre las dos interrupciones cuando éstas se den a la vez?

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda sobre interrupciones simultaneas
« Respuesta #1 en: 21 de Febrero de 2011, 09:30:52 »
Conflicto no hay, si ocurren a la vez, al entrar a la rutina ISR, se atenderá a la interrupción por la que se pregunta primero. En CCS se puede dar prioridades con #priority


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Duda sobre interrupciones simultaneas
« Respuesta #2 en: 21 de Febrero de 2011, 10:09:06 »
se te paso el 877 suky... jeje

Para ese pic no se puede usar prioridades, solo para 18F pa arriba.

Pensando en assembler si ocurren al mismito tiempo en un micro 16F, seguramente dependera de la rutina que se haga al consultar por las banderas, se ejecutara primero la rutina q este primero.. jaja.

Si el RETFIE no nos reestablece algunas banderas, tendria q volver a ejecutarse las rutinas de interrupcion y se ejecutaria la segunda. Pero si el retifie reestablece algunas banderas, si las interrupciones ocurren en el mismo tiempo exactamente, se perdera una de ellas?
.

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Duda sobre interrupciones simultaneas
« Respuesta #3 en: 21 de Febrero de 2011, 10:24:10 »
  Hasta donde yo se, la instrucción RETFIE no borra los flag de interrupción, lo sí hace es rehabilitarlas poniendo a 1 el bit GIE del registro INTCON.

  Por ello es conveniente borrar cada de flag dentro de su consulta.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda sobre interrupciones simultaneas
« Respuesta #4 en: 21 de Febrero de 2011, 11:42:42 »
se te paso el 877 suky... jeje

Para ese pic no se puede usar prioridades, solo para 18F pa arriba.

Pensando en assembler si ocurren al mismito tiempo en un micro 16F, seguramente dependera de la rutina que se haga al consultar por las banderas, se ejecutara primero la rutina q este primero.. jaja.

Si el RETFIE no nos reestablece algunas banderas, tendria q volver a ejecutarse las rutinas de interrupcion y se ejecutaria la segunda. Pero si el retifie reestablece algunas banderas, si las interrupciones ocurren en el mismo tiempo exactamente, se perdera una de ellas?

No es tema de prioridad por vectorización, sino por qué bit IF se pregunta primero  ;-) Eso hace #priority  ;-)


Saludos!
« Última modificación: 21 de Febrero de 2011, 12:30:42 por Suky »
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Duda sobre interrupciones simultaneas
« Respuesta #5 en: 21 de Febrero de 2011, 12:13:16 »
Ok entendido, estaba confundiendo con la vectorizacion

Un saludo.
.

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Duda sobre interrupciones simultaneas
« Respuesta #6 en: 22 de Febrero de 2011, 06:55:32 »
Bueno, ya está funcionando y no me da ningun problema :)

Eso si, me surge otra duda, que no tiene nada que ver con las interrupciones, pero la postearé aqui para no dar mucho el coñazo habriendo hilos, a ver si me la podeis resolver.

Los puertos RB4:Rb7 los uso como botones "ok, mas, menos, cancel" para navegar por el menu inicial, y configurar el programa antes de que empiece a cronometrar. Pero para marcar el fin/inicio de suceso, tambien necesitaba alguno de estos puertos, asi que me las he ingeniado de la siguiente forma. Perdonad por mi "jerga electrónica" pero como he aprendido de forma autodidacta, es mas bien nula, asi que es posible que suelte mas de una perla  :)

Normalmente, las entradas RB4:RB7 estan conectadas a Vcc, estando siempre en nivel alto, y el pulsador desvia vcc a tierra, para que la entrada quede a nivel bajo, pero como necesitaba poder accionar RB4 y RB5 desde distintos sitios, lo que he hecho es proporcionar esos 5V a las entradas desde  RB0 y RB1 para una situación (configurando RB2 y RB3 como entradas), y desde RB2 y RB3 para otra situacion (configuradno RB0 y RB1 como entradas).

Como me parece que me estoy expresando como un libro cerrado y al revés, cuelgo una captura:


Como se vé, puedo activar la interrupción RB4:RB7 a traves de RB4 y RB5 por medio de dos pulsadores distintos, pero de forma indistinta, y quiero seleccionar cuales de los dos funcionan y cuales no. Creo que tengo que poner algún diodo en alguna parte, pero no se donde exactamente.

También me gustaria que me dijerais si veis algun fallo en el circuito o algo que deba corregir o mejorar.

Saludos y gracias!

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Duda sobre interrupciones simultaneas
« Respuesta #7 en: 22 de Febrero de 2011, 09:22:17 »
  No se ve la imágen. ¿Puede ser que te hayas olvidado de subirla?
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado Cortijero

  • PIC12
  • **
  • Mensajes: 57
Re: Duda sobre interrupciones simultaneas
« Respuesta #8 en: 22 de Febrero de 2011, 11:00:08 »
Curioso... a mi si que se me ve. Pongo el enlace directo:

http://img208.imageshack.us/img208/3292/sinttulo1bp.jpg

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Duda sobre interrupciones simultaneas
« Respuesta #9 en: 22 de Febrero de 2011, 11:05:00 »
Curioso... a mi si que se me ve. Pongo el enlace directo:

http://img208.imageshack.us/img208/3292/sinttulo1bp.jpg

Es porque está guardad en el cache (Ctrl + F5), pero por lo visto está caído imageshack  :?


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado Cryn

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4169
Re: Duda sobre interrupciones simultaneas
« Respuesta #10 en: 22 de Febrero de 2011, 12:16:21 »
cayo, porque mi avatar esta en imageshack y no aparece :(
.

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Duda sobre interrupciones simultaneas
« Respuesta #11 en: 22 de Febrero de 2011, 15:24:07 »

...
Como me parece que me estoy expresando como un libro cerrado y al revés, cuelgo una captura:


Como se vé, puedo activar la interrupción RB4:RB7 a traves de RB4 y RB5 por medio de dos pulsadores distintos, pero de forma indistinta, y quiero seleccionar cuales de los dos funcionan y cuales no. Creo que tengo que poner algún diodo en alguna parte, pero no se donde exactamente.
...

yo creo que así es imposible, porque ¿como sabe el pic cual pulsador es si ambos están conectados idénticamente?

ahora una sugerencia es que dispongas ese par de teclas extras en forma matricial, y luego cada pin de cada tecla, lo conectes a otros pines (no importa cual, pero que sean salida), y luego utilizas el mismo pin RB4 conectado a ambas teclas, y luego el resto sería escribir una programación para el barrido de teclas matriciales.

La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Duda sobre interrupciones simultaneas
« Respuesta #12 en: 22 de Febrero de 2011, 20:28:37 »
yo en un  proyecto que hice... como no debia de pulsar simultaneamente ningun boton y ya no me quedaban pines disponibles en el pic, use una sola entrada analogica del pic... y con un simple divisor de tension lo arregle todo... 8 pulsadores, 9 resistencias y en un solo pin del pic.... y  a marchar....

un saludo....
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Duda sobre interrupciones simultaneas
« Respuesta #13 en: 22 de Febrero de 2011, 22:04:26 »
yo en un  proyecto que hice... como no debia de pulsar simultaneamente ningun boton y ya no me quedaban pines disponibles en el pic, use una sola entrada analogica del pic... y con un simple divisor de tension lo arregle todo... 8 pulsadores, 9 resistencias y en un solo pin del pic.... y  a marchar....

un saludo....

  Ese sistema de switch es muy empleado en la actualidad en distintos equipos de auido y  también en TVs
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado ppyote

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 929
Re: Duda sobre interrupciones simultaneas
« Respuesta #14 en: 23 de Febrero de 2011, 12:10:52 »
a mi personalmente me agrada mucho este sistema para afrontar la escasez de pines libres para pulsadores, mas incluso que la las matrices.... y aun mas, cuando han incorporado la interrupcion ADC en los pics
por cierto... me autocito....

Citar
yo en un  proyecto que hice... como no debia de pulsar simultaneamente ningun boton y ya no me quedaban pines disponibles en el pic, use una sola entrada analogica del pic... y con un simple divisor de tension lo arregle todo... 8 pulsadores, 9 resistencias y en un solo pin del pic.... y  a marchar....

si se puede detectar la pulsacion conjunta de varios pulsadores.... todo consiste en calcular la ecuacion con cada coincidenicia

un saludo
PPyote... siempre estareis en mi corazon.... Te quiero Hermano...


 

anything