31. Lektion: InterruptsAus Attraktor WikiVersion vom 19. Dezember 2023, 19:39 Uhr von Kapest (Diskussion | Beiträge) InhaltsverzeichnisInterruptsInterrupts einrichtenDie 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 TriggerPin.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()
Hinweise zum Schreiben von Interrupt Handlern: http://docs.micropython.org/en/latest/reference/isr_rules.html Zurück zur "Micropython Kurs 2023 Teil 2" Startseite |