Muchos procesadores / µCs / plataformas de desarrollo (BeagleBoard, Arduino,...) utilizan interrupciones.
Estos pueden ser activados por la detección de:
- Nivel alto
- Borde ascendente
- CAMBIO DE NIVEL (borde descendente o ascendente)
- Borde de caída
- Nivel bajo
Ahora bien, una de las dos cosas debe ser cierta:
- CAÍDA y BAJA (/ SUBIDA y ALTA) son prácticamente lo mismo
- Cuando se aplica un nivel BAJO (/ALTO) durante un tiempo no trivial, el controlador se queda atascado repitiendo la rutina de servicio de interrupción una y otra vez
Ambas cosas no tienen sentido para mí:
Lo primero no puede ser cierto, ya que entonces sería totalmente inútil hacer la diferencia en primer lugar.
Entonces, si la segunda es cierta: ¿cómo podría ser útil? ¿Qué aplicación hay que no sea mejor con una combinación de SUBIR y BAJAR en lugar de ALTO?
La investigación hasta ahora:
- Esta pregunta es sólo un trozo, así que no ha servido de nada: https://electronics.stackexchange.com/questions/92833/what-is-the-difference-between-level-triggering-and-edge-triggering
- Este tampoco es demasiado útil ya que se trata de cuando esas interrupciones se activan, no las implicaciones de las diferencias: ¿Qué significa "edge triggered" y "level triggered"?
- Éste se ocupa principalmente de las diferencias en la detección de los distintos eventos desencadenantes: ¿Por qué se prefiere la activación por flancos a la activación por niveles?