31. Lektion: Interrupts: Difference between revisions
Jump to navigation
Jump to search
| Line 58: | Line 58: | ||
</pre> | </pre> | ||
== Inerrupts aus dem Kurs von 2022== | |||
Revision as of 10:48, 30 January 2024
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
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