třída ExtInt – konfigurace I/O pinů pro přerušení při externích událostech¶
MCU STM32 rozdělují řadič externích přerušení (EXTI) do dvou rozsahů: linky 0-15 jsou buzeny z GPIO pinů a linky nad 15 jsou navázány na interní zdroje (alarm RTC, probuzení RTC, probuzení USB atd.). Celkový počet linek a mapování interních linek nad 15 jsou specifické pro daný MCU; přesné přiřazení najdete v sekci EXTI referenčního manuálu MCU vaší OpenMV Cam.
Každá GPIO linka N může být v daném okamžiku buzena pinem PxN na kterémkoli jednom GPIO portu – například linka 0 může mapovat na PA0, PB0, PC0 nebo na kterýkoli pin 0 portu A až K, ale vždy jen jeden najednou.
Příklad:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
Každá sestupná hrana na pin poté vyvolá callback. ExtInt automaticky nakonfiguruje GPIO linku jako vstup; nemusíte to dělat sami.
Poznámka
Mechanická tlačítka „zakmitávají“ a jediné stisknutí nebo uvolnění často vygeneruje více hran. Techniky řešení najdete například v tomto úvodu do odstraňování zákmitů.
Registrace dvou callbacků na stejném pinu vyvolá výjimku.
Pokud je pin předán jako celé číslo, předpokládá se, že identifikuje jednu z interních přerušovacích linek, a musí být >= 16 a menší než celkový počet EXTI linek MCU. Jakákoli jiná hodnota pinu se vyřeší prostřednictvím standardního mapovače pinů.
Kromě režimů IRQ_* existují i režimy událostí EVT_RISING, EVT_FALLING a EVT_RISING_FALLING, které směrují přechod na vstup událostí procesoru (používá se s instrukcí WFE pro nízkopříkonové čekání). Režimy EVT_* nevyvolávají Python callback a jsou určeny pro režim spánku / správu napájení; běžný aplikační kód by měl používat režimy IRQ_*.
Konstruktory¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
Vytvoří objekt
ExtInt.pin– pin, na kterém se má přerušení povolit. Může být objektPin, řetězec se jménem pinu nebo celé číslo v rozsahu16-21pro výběr interního zdroje přerušení.mode– režim spouštění. Jeden z:Konstanta
Spouštěč
Náběžná hrana.
Sestupná hrana.
Náběžná nebo sestupná hrana.
pull– konfigurace pull rezistoru pinu. Jeden zpyb.Pin.PULL_NONE,pyb.Pin.PULL_UPnebopyb.Pin.PULL_DOWN.callback– volatelný objekt vyvolaný při spuštění. Musí přijímat přesně jeden argument: číslo EXTI linky, která se aktivovala.
Metody třídy¶
Metody¶
Konstanty¶
- EVT_RISING: int¶
Směruje náběžnou hranu na vstup událostí Cortexu. Žádný Python callback se nevyvolá; určeno pro použití s instrukcí
WFEv nízkopříkonovém kódu.