Interrupciones Externas

Interrupciones externas 

Todos los pines, excepto el número 16, se pueden configurar para activar una interrupción fuerte si cambia su entrada. Puede configurar el código (una función de devolución de llamada) para que se ejecute en el disparador. Primero definamos una función de devolución de llamada, que debe tomar un solo argumento, que es el pin que activó la función. Haremos que la función solo imprima el pin:

 
 >>> def callback(p):
...     print('pin change', p)

 
A continuación crearemos dos pines y los configuraremos como entradas:
   
>>> from machine import Pin
>>> p0 = Pin(0, Pin.IN)
>>> p2 = Pin(2, Pin.IN) 

Finalmente, necesitamos decirle a los pines cuándo disparar, y la función a llamar cuando detectan un evento:
 
>>> p0.irq(trigger=Pin.IRQ_FALLING, handler=callback)
>>> p2.irq(trigger=Pin.IRQ_RISING | Pin.IRQ_FALLING, handler=callback)
 
 
Configuramos el pin 0 para disparar solo en un borde descendente de la entrada (cuando va de mayor a menor), y configuramos el pin 2 para disparar tanto en un borde ascendente como descendente. Después de ingresar este código, puede aplicar voltajes altos y bajos a los pines 0 y 2 para ver la interrupción en ejecución. Una interrupción fuerte se activará tan pronto como ocurra el evento e interrumpirá cualquier código en ejecución, incluido el código Python. Como tal, sus funciones de devolución de llamada están limitadas en lo que pueden hacer (no pueden asignar memoria, por ejemplo) y deben ser lo más breves y simples posible.

Comentarios

Entradas populares