31. Lektion: Interrupts

Aus Attraktor Wiki

Wechseln zu: Navigation, Suche

Interrupts

Interrupts einrichten

Die Interruptfunktion ist eine Methode der Klasse Pin.

Pin.irq(handler=None, trigger=Pin.IRQ_FALLING | Pin.IRQ_RISING, *, priority=1, wake=None, hard=False)
Beispiel
# int_test_01.py

from machine import Pin

int_pin = Pin(14, Pin.IN, Pin.PULL_DOWN)
led_pin = Pin(22, Pin.OUT)
led_pin.value(1)

int_pin.irq(handler=lambda t:led_pin.toggle(), trigger=int_pin.IRQ_RISING)

Interrupt Trigger

Pin.IRQ_FALLING
Pin.IRQ_RISING
Pin.IRQ_LOW_LEVEL
Pin.IRQ_HIGH_LEVEL

Trigger können auch ODER (|) verknüpft werden (Pin.IRQ_FALLING | Pin.IRQ_RISING) .

Interrupt Handler

# Source: Electrocredible.com, Language: MicroPython
from machine import Pin
import time
interrupt_flag=0
debounce_time=0
pin = Pin(5, Pin.IN, Pin.PULL_UP)
led = Pin("LED", Pin.OUT)
count=0

def callback(pin):
    global interrupt_flag, debounce_time
    if (time.ticks_ms()-debounce_time) > 500:
        interrupt_flag= 1
        debounce_time=time.ticks_ms()

pin.irq(trigger=Pin.IRQ_FALLING, handler=callback)

while True:
    if interrupt_flag is 1:
        interrupt_flag=0
        print("Interrupt Detected")
        led.toggle()

Inerrupts aus dem Kurs von 2022

Hinweise zum Schreiben von Interrupt Handlern: http://docs.micropython.org/en/latest/reference/isr_rules.html

Navigation

Zurück zur "Micropython Kurs 2023 Teil 2" Startseite
Zurück zur "Micropython Kurs 2023" Startseite
Zurück zur Programmieren Startseite
Zurück zur Wiki Startseite