Interrupción de servicio mientras se deshabilitó por algún período

0

Considere que hay 4 interrupciones habilitadas en el microcontrolador. Cuando se da servicio a la primera interrupción, entro en la sección protegida (Todas las demás interrupciones están desactivadas) para realizar cálculos importantes. Mi pregunta es: Mientras el código está en la sección protegida, si se supone que otra interrupción da una interrupción, ésta se deshabilitará completamente o se mantendrá en espera, de modo que dará una interrupción después de salir de la sección protegida.

    
pregunta user2732944

3 respuestas

1

Lo que sospecharía que sucedería es que cuando ocurre un evento en particular, se establece el indicador de interrupción. Si todas las interrupciones están deshabilitadas, solo se establece el indicador y no se emite ninguna instrucción de salto. Cuando habilita las interrupciones, si se establece un indicador de interrupción, entonces ocurrirá la instrucción de salto correspondiente.

Pero lo mejor que puedes hacer es leer la hoja de datos del microcontrolador porque te dirá lo que sucedería.

    
respondido por el efox29
1

Tenga en cuenta que deshabilitar las interrupciones a nivel mundial durante demasiado tiempo puede causar problemas para otros eventos que utilizan interrupciones para el procesamiento. Por ejemplo, si recibe datos en serie sobre UART, puede ocurrir un error de saturación si no lee los datos del búfer (o incluso un FIFO) lo suficientemente rápido. mientras se ejecutan ISR más largos.

    
respondido por el Alexxx
0

La segunda interrupción o cualquier otra interrupción se reparará (y dejará de ejecutarse primero) solo en caso de que tenga un nivel de prioridad más alto, si no, estará esperando (en estado pendiente) la primera interrupción para finalizar y cuando la primera interrupción salga desde ISR, se dará servicio a la segunda interrupción.

    
respondido por el user76920

Lea otras preguntas en las etiquetas