klasa ExtInt – konfiguriranje U/I pinova za prekid na vanjskim događajima¶
STM32 MCU-i dijele kontroler vanjskih prekida (EXTI) u dva raspona: linije 0-15 pokreću se s GPIO pinova, a linije iznad 15 vezane su za interne izvore (RTC alarm, RTC buđenje, USB buđenje itd.). Ukupan broj linija i mapiranje internih linija iznad 15 specifični su za MCU; za točne dodjele pogledajte odjeljak EXTI u referentnom priručniku za MCU vaše OpenMV Cam kamere.
Svaku GPIO liniju N može pokretati pin PxN na bilo kojem GPIO portu u danom trenutku – na primjer, linija 0 može se mapirati na PA0, PB0, PC0 ili bilo koji drugi pin 0 od porta A do porta K, ali samo jedan istovremeno.
Primjer:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
Svaki silazni brid na pin zatim poziva callback. ExtInt automatski konfigurira GPIO liniju kao ulaz; to ne morate raditi sami.
Napomena
Mehaničke tipkala „poskakuju” pa jedan pritisak ili otpuštanje često generira više bridova. Vidi na primjer ovaj uvod u uklanjanje poskakivanja za tehnike.
Registriranje dvaju povratnih poziva na istom pinu izaziva iznimku.
Ako se pin proslijedi kao cijeli broj, pretpostavlja se da identificira jednu od internih linija prekida i mora biti >= 16 te ispod ukupnog broja EXTI linija MCU-a. Svaka druga vrijednost pina razrješava se kroz standardni mapirač pinova.
Uz načine rada IRQ_* postoje i načini događaja EVT_RISING, EVT_FALLING i EVT_RISING_FALLING koji usmjeravaju prijelaz na ulaz događaja procesora (koristi se s instrukcijom WFE za čekanje uz nisku potrošnju). Načini EVT_* ne pozivaju Python povratni poziv i namijenjeni su za spavanje / upravljanje napajanjem; uobičajeni aplikacijski kod trebao bi koristiti načine IRQ_*.
Konstruktori¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
Stvara
ExtIntobjekt.pin– pin na kojem se omogućuje prekid. Može bitiPinobjekt, niz s nazivom pina ili cijeli broj u rasponu16-21za odabir internog izvora prekida.mode– način okidanja. Jedan od:Konstanta
Okidanje
Uzlazni brid.
Silazni brid.
Bilo uzlazni bilo silazni brid.
pull– konfiguracija povlačenja pina. Jedan odpyb.Pin.PULL_NONE,pyb.Pin.PULL_UPilipyb.Pin.PULL_DOWN.callback– pozivljivi objekt koji se poziva pri okidanju. Mora prihvatiti točno jedan argument: broj EXTI linije koja se aktivirala.
Klasne metode¶
Metode¶
Konstante¶
- EVT_RISING: int¶
Usmjerava uzlazni brid na ulaz događaja Cortexa. Ne poziva se nikakav Python povratni poziv; namijenjeno za upotrebu s instrukcijom
WFEu kodu niske potrošnje.