Notificación de nivel de interrupción y nivel de tarea en el microcontrolador

0

Recientemente he encontrado los dos términos en las funciones de devolución de llamada (que notificarán al usuario) en particular el Proyecto i) Nivel de interrupción ii) Nivel de tarea. Mi entendimiento es,

  

Nivel de interrupción

    The user will get a notification Instantly, though other Task is running.
  

Nivel de tarea

 The user will get notify if Running Task is Completed.

Si lo anterior es correcto, entonces podemos configurar el nivel de interrupción en MicroController. Sé que habrá interrupción GPIO, interrupción UART. Mi pregunta cómo lo notificará en el nivel de interrupción. ¿Podemos cambiar alguna mesa de interrupción reservada? o como se puede lograr.

    
pregunta user2732944

1 respuesta

1

Imagina que tienes un bucle principal. Su código se ejecuta felizmente a través de este bucle principal, una y otra vez. Una de las funciones es leer un pin. Si ese pin se pone alto, entonces algo se ha completado y notifica al usuario. Este es un evento de "nivel de tarea", y solo ocurre cuando el código de bucle principal llama a esa función y la condición es verdadera.

Se produce una interrupción de inmediato, independientemente de dónde se encuentre el código del bucle principal. Así que diga que agrega una interrupción para los datos seriales entrantes. El código de bucle principal está felizmente ejecutándose, luego entra un byte serial. ¡BAM! La posición en el bucle principal se guarda y la ejecución salta inmediatamente a la rutina de interrupción. Este es un evento de "nivel de interrupción". Copie el byte recibido a la RAM, luego regrese. La posición del bucle principal se restaura y vuelve al procesamiento de tareas "a nivel de usuario".

Las funciones de "nivel de tarea" del bucle principal son relativamente lentas, y puede pasar un tiempo significativo antes de que se note el estado del pin, por lo que se usan para funciones de propósito general o aquellas que son insensibles al tiempo. Las interrupciones se utilizan principalmente para eventos críticos en el tiempo que deben manejarse rápidamente, como los datos en serie.

    
respondido por el rdtsc

Lea otras preguntas en las etiquetas