Pages: [1]   Go Down
Author Topic: Desactivar interrupciones, ¿para qué?  (Read 722 times)
0 Members and 1 Guest are viewing this topic.
Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 727
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,
tengo una duda: cuando se utilizan interrupciones externas, hay dos funciones que sirven para activar y desactivar interrupciones.
- sei()para activar
- cli() para desactivarlas

Mi pregunta es: si las activo una vez en el setup(), para qué  necesito desactivarlas? ¿Existen tareas o funciones que no son compatibles con las interrupciones activadas?


Logged

Spain
Offline Offline
Full Member
***
Karma: 0
Posts: 191
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Las interrupciones no hace falta activarlas en el setup. Ya están activas

Estas instrucciones se utilizan en trozos de código críticos que no se pueden "interrumpir". Por ejemplo, dentro de la función millis(), cuando se va a leer el registro del timer del micro se paran las interrupciones para que esa lectura sea correcta, ya que, imagínate, que el timer salta justo entre la lectura de dos bytes del registro y los modifica, tendrías un byte "viejo" y otro "nuevo" y una lectura mala.

En principio, salvo que entres en funciones muy cercanas al hardware y críticas, no es necesario que utilices esas instrucciones.
Logged

Euskadi
Offline Offline
God Member
*****
Karma: 16
Posts: 727
Arduinotarrak
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


Queda aclarada mi duda. Gracias
Logged

Pages: [1]   Go Up
Jump to: