Diferencia entre revisiones de «C12 - Interrupts»
Ir a la navegación
Ir a la búsqueda
| Línea 1: | Línea 1: | ||
= Interrupt Concepts = | = Interrupt Concepts = | ||
<br> | <br> | ||
<b>Definición</b> | |||
*Es cuando se suspende temporalmente la ejecución del programa para ejecutar una subrutina | *Es cuando se suspende temporalmente la ejecución del programa para ejecutar una subrutina | ||
*Cuando acaba la interrupción se vuelve a reanudar la ejecución donde se habia quedado | *Cuando acaba la interrupción se vuelve a reanudar la ejecución donde se habia quedado | ||
*La interrupción se "dispara" (trigger) a través de una acción del hardware | *La interrupción se "dispara" (trigger) a través de una acción del hardware | ||
Interrupt Setup ritual | <b>Interrupt Setup ritual</b> | ||
*Arm/Disarm | *Arm/Disarm | ||
**Arm - Permite al hardware hacer trigger a la interrupción | **Arm - Permite al hardware hacer trigger a la interrupción | ||
| Línea 20: | Línea 21: | ||
**El registro BASEPRI controla la prioridad de las interrupciones | **El registro BASEPRI controla la prioridad de las interrupciones | ||
*Trigger - Es un evento asincrono. Es el encargado de activar el device que activa la interrupción. En el registro RIS hay un bit que nos indica que ha habido un trigger. | *Trigger - Es un evento asincrono. Es el encargado de activar el device que activa la interrupción. En el registro RIS hay un bit que nos indica que ha habido un trigger. | ||
5 condiciones que han de ser true para que una interrupción sea generada | <b>5 condiciones que han de ser true para que una interrupción sea generada</b> | ||
*Device arm | *Device arm | ||
*NVIC enable | *NVIC enable | ||
| Línea 26: | Línea 27: | ||
*Prioridad de la itnerrupción actual ha de ser superior al nivel actual | *Prioridad de la itnerrupción actual ha de ser superior al nivel actual | ||
*Hardware event trigger | *Hardware event trigger | ||
La interrupción causa 5 eventos | <b>La interrupción causa 5 eventos</b> | ||
<br> | <br> | ||
Revisión del 07:16 7 abr 2015
Interrupt Concepts
Definición
- Es cuando se suspende temporalmente la ejecución del programa para ejecutar una subrutina
- Cuando acaba la interrupción se vuelve a reanudar la ejecución donde se habia quedado
- La interrupción se "dispara" (trigger) a través de una acción del hardware
Interrupt Setup ritual
- Arm/Disarm
- Arm - Permite al hardware hacer trigger a la interrupción
- Disarm - Deshabilita la función de trigger
- Cada interrupción tiene un bit de arm/disarm
- Enable NVIC (Nested Vectored Interrupt Controller)
- Es un módulo que controla todas las interrupciones. Se activa el NVIC específico para el device que usaremos
- Para deshabilitar hacemos un set al bit PRIMASK
- En C hay las funciones EnableInterrupts() y Disable Interrupts() para activar/desactivar las interrupciones
- Global enable bit I
- Este bit se activa haciendo un clear. Este bit activa y desactiva todas las interrupciones
- Si el bit es 1 muchas de las interrupciones no están permitidas, estan disable
- Priority
- No se si se refiere a la prioridad del device al thread principal o a que puede haber varias devices por interrupción y cada una tiene una prioridad
- El registro BASEPRI controla la prioridad de las interrupciones
- Trigger - Es un evento asincrono. Es el encargado de activar el device que activa la interrupción. En el registro RIS hay un bit que nos indica que ha habido un trigger.
5 condiciones que han de ser true para que una interrupción sea generada
- Device arm
- NVIC enable
- Global enable
- Prioridad de la itnerrupción actual ha de ser superior al nivel actual
- Hardware event trigger
La interrupción causa 5 eventos