Editando
C12 - Interrupts
(sección)
Ir a la navegación
Ir a la búsqueda
Advertencia:
no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si
inicias sesión
o
creas una cuenta
, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.
Comprobación antispam. ¡
No
rellenes esto!
= Edge-triggered Interrupt = <br> *Esto es un tipo de interrupción que usa un cambio en la señal (flanco) para disparar la interrupción. Es útil cuando tenemos un evento físico que debemos "capturar" en el momento exacto cuando sucede. *Para leer la señal se usa un puerto del µC configurado como GPIO de entrada *Se usa los flancos (subida o bajada) que generan los devices (sensor temperatura, presión, humo, switch ...) en su señal para detectar los cambios en su estado *Si manejamos estas señales con interrupciones tenemos que el software responde inmediatamente a eventos físicos. Tenemos un sistema real-time <br> Imagen<br> <br> *Para usar un pin como edge-trigger interrupt **Cualquier pin digital I/O puede configurarse como edge-triggering input **Se sigue la inicialización habitual como puerto GPIO input ***Enable clock RCGC2 ***Enable bit DEN ***Clear PCTL ***Clear AFSEL (alternative function) ***Clear DIR (input) ***Clear AMSEL (digital pin) **A parte se configurar otros bits para poder tener el modo edge-trigger ***IS - Si es 0 significa que detecta los flancos ***IEV - Si es 0 significa falling edge, si es 1 significa rising edge ***IBE - Si es 1 significa que tiene en cuenta los dos flancos ***IME - Si es 1 significa que cuando detecte un flanco activa la interrupción <br> {|cellpadding="5" border="1" cellspacing="0" ! style="text-align: center; font-weight: bold;" | DIR ! style="text-align: center; font-weight: bold;" | IS ! style="text-align: center; font-weight: bold;" | IBE ! style="text-align: center; font-weight: bold;" | IEV ! style="text-align: center; font-weight: bold;" | IME ! style="text-align: center; font-weight: bold;" | Port mode |- | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | falling |- | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | 1 | style="text-align: center;" | rising |- | style="text-align: center;" | 0 | style="text-align: center;" | 0 | style="text-align: center;" | 1 | style="text-align: center;" | - | style="text-align: center;" | 1 | style="text-align: center;" | both edges |} <br> <b>Ejemplo</b><br> Tenemos un switch (lógica positiva) que conectamos a un puerto digital del µC. Queremos "capturar" la pulsación cuando se produzca (flanco de subida) y guardar el número de pulsaciones. El evento (la pulsación) es crítica y necesitamos que se "capture" en el momento exacto en que se produce. Para ello utilizaremos una interrupción de tipo edge-triggering.<br> <br>
Resumen:
Ten en cuenta que todas las contribuciones a Proyectos se consideran publicadas bajo la Creative Commons Atribución-CompartirIgual (véase
Proyectos:Derechos de autor
para más información). Si no deseas que las modifiquen sin limitaciones y las distribuyan libremente, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre.
¡No uses textos con copyright sin permiso!
Cancelar
Ayuda de edición
(se abre en una ventana nueva)
Menú de navegación
Herramientas personales
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Espacios de nombres
Página
Discusión
español
Vistas
Leer
Editar
Ver historial
Más
Buscar
Navegación
Página principal
Cambios recientes
Página aleatoria
Ayuda sobre MediaWiki
Páginas especiales
Herramientas
Lo que enlaza aquí
Cambios relacionados
Información de la página