Autor Tema: ¿Cuantas Interrupciones se pueden habilitar AL MISMO TIEMPO en el Pic18F4550?  (Leído 2920 veces)

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

Desconectado DavidtXz

  • PIC10
  • *
  • Mensajes: 22

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:¿Cuantas Interrupciones se pueden habilitar AL MISMO TIEMPO en el Pic18F4550?
« Respuesta #1 en: 16 de Abril de 2020, 16:29:59 »
Se pueden habilitar TODAS al mismo tiempo, pero NO se pueden ejecutar dos o más al mismo tiempo.

elreypic.

Desconectado DavidtXz

  • PIC10
  • *
  • Mensajes: 22
Re:¿Cuantas Interrupciones se pueden habilitar AL MISMO TIEMPO en el Pic18F4550?
« Respuesta #2 en: 16 de Abril de 2020, 16:31:22 »
Asi se usen con prioridades?

Desconectado DavidtXz

  • PIC10
  • *
  • Mensajes: 22
Re:¿Cuantas Interrupciones se pueden habilitar AL MISMO TIEMPO en el Pic18F4550?
« Respuesta #3 en: 16 de Abril de 2020, 16:38:52 »
Creo que me falto formular algo en la pregunta ¿Cuantas interrupciones se pueden ejecutar AL MISMO TIEMPO en este PIC?

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:¿Cuantas Interrupciones se pueden habilitar AL MISMO TIEMPO en el Pic18F4550?
« Respuesta #4 en: 16 de Abril de 2020, 18:05:48 »
los pic18 tienen dos vectores de interrupción.

  Uno es el de alta prioridad y el otro el de baja.

  Como en todos los casos, tú puedes tener todas las fuentes de interrupción del pic habilitadas si quieres. Cualquiera que salte irá al vector de baja prioridad por defecto. . Aquí tendrás que chequear las banderas, ver cuál es la que ha saltado y ejecutar el código que le corresponde.

 Convencionalmente mientras se está atendiendo una interrupción no se puede producir otra por que tendrías recursividad en el handler de interrupción. Pero.............. 

  Los pic18 al tener un segundo vector, tú puedes decirle que si un determinado periférico (o varios) provocan una interrupción mientras se estaba atendiendo otra, pues que sale a un segundo handler. 

 Es decir, que una rutina de interrupción de baja prioridad puede ser interrumpida por otra de alta prioridad. Cuando termine la prioritaria se continúa atendiendo la rutina de baja prioridad.

  Para que esto sea posible hay que definir mediante unas macros cuáles van a ser los periféricos que irán a alta prioridad y cuáles van a los de baja prioridad y además hay que habilitar el registro RCONbits.IPEN=1 para habilitar los dos vectores y poder usar prioridades.  levels). También:

INTCONbits.GIEH=1
INTCONbits.GIEL=1




  Saludos.
« Última modificación: 16 de Abril de 2020, 18:13:48 por remi04 »

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:¿Cuantas Interrupciones se pueden habilitar AL MISMO TIEMPO en el Pic18F4550?
« Respuesta #5 en: 16 de Abril de 2020, 20:16:16 »
Creo que me falto formular algo en la pregunta ¿Cuantas interrupciones se pueden ejecutar AL MISMO TIEMPO en este PIC?

En este PIC, ni en ningun otro, Todos tienen prioridades, a no ser que tenga mas de un nucleo, lo cual es "raro" en los microcontroladores normales, entonces unicamente vas a poder ejecutar una interrupcion a la vez.
Si estas en una interrupcion y ocurre otra de mayor prioridad, la interrupcion de baja prioridad se queda esperando hasta que termine la de mayor prioridad.