Autor Tema: Gestión interrupciones  (Leído 3331 veces)

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

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Gestión interrupciones
« en: 06 de Octubre de 2008, 06:00:35 »
En un sistema en el que hay mas de 5 interrupciones y se activan por prioridad, ¿como se hace la gestión para que si estás en una interrupción mas prioritaria y te interrumpe una menos prioriataria (no la atiendes, claro está)?, como hacer para atenderla al acabar la mas prioritaria, o de que forma poder interrumpir a la más prioritaria.

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Gestión interrupciones
« Respuesta #1 en: 06 de Octubre de 2008, 23:07:36 »
Hola.

En que lenguaje de programacion?

El papel lo aguanta todo

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: Gestión interrupciones
« Respuesta #2 en: 07 de Octubre de 2008, 04:47:57 »
en c30, pero bueno, no deja de ser c

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Gestión interrupciones
« Respuesta #3 en: 07 de Octubre de 2008, 16:42:48 »
 :? No manejo el C30 (no he hecho ningun programa con el), pero en CCS hay una directiva de compilacion que asigna la prioridad de las interrupciones: #priority xxx. De pronto el C30 cuenta con algo similar.

Saludos
El papel lo aguanta todo

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: Gestión interrupciones
« Respuesta #4 en: 08 de Octubre de 2008, 04:33:28 »
si, si puedo asignar prioridad a las interrupciones, pero si estoy atendiendo a la mas prioritaria y de repente me interrumpe una menos prioritaria, esa no se atiende, ni se atenderá cuando acabe de ejecutarse el código de la primera interrupción, como puedo solucionar esto?

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Gestión interrupciones
« Respuesta #5 en: 08 de Octubre de 2008, 11:12:47 »
Hola.

Pues no se si se pueda en ese compilador, pero se me ocurre que al entrar en la interrupcion de mayor prioridad se deshabilitan las interrupcion de mayor prioridad y se habilitan las de menor prioridad. Al final de cada funcion de atencion a interrupcion, se deberian habilitar las interrupciones nuevamente.

Me parece logico que si se atiende una interrupcion de alta prioridad se deshabiliten las de baja prioridad. Siempre he sido partidario de demorarme lo menos posible dentro de una interrupcion, de pronto el codigo de la funcion de atencion es demasiado largo y eso hace que tengas esos conflictos.

Saludos
El papel lo aguanta todo

Desconectado superprp

  • PIC16
  • ***
  • Mensajes: 137
Re: Gestión interrupciones
« Respuesta #6 en: 08 de Octubre de 2008, 12:58:15 »
no no, el tiempo en el que estoy en una interrupción es apenas 40us, no es mucho la verdad, pero que pasa, que hay mas de 5 interrupciones y éstas interrumpen muy rápido, kizas interrumpen dos cada 1ms aprox., otra cada 5ms, otra entre 500us y 50 ms, y así, entonces al cabo de unos segundos, es posible que si tardas 40us aprox. por cada interrupcion, al tener que atender tantas se te pueda interrumpir una estando en la otra... y todas son igual de prioritarias, aunque yo les de diferente prioridad

Desconectado MLO__

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 4581
Re: Gestión interrupciones
« Respuesta #7 en: 08 de Octubre de 2008, 13:02:05 »
 :shock: :shock: :shock:

Es rapido, claro .....

tocaria gestionar la prioridad por software como te explique antes, de pronto asi pueda funcionar.

Saludos
El papel lo aguanta todo