class ExtInt – määritä I/O-nastat keskeyttämään ulkoisista tapahtumista¶
STM32-mikrokontrollerit jakavat ulkoisen keskeytysohjaimen (EXTI) kahteen alueeseen: linjat 0-15 ohjataan GPIO-nastoista, ja linjat 15:n yläpuolella on sidottu sisäisiin lähteisiin (RTC-hälytys, RTC-herätys, USB-herätys jne.). Linjojen kokonaismäärä ja 15:n yläpuolella olevien sisäisten linjojen kartoitus ovat mikrokontrollerikohtaisia; tarkat määritykset löytyvät OpenMV Cam -kameran mikrokontrollerin referenssikäsikirjan EXTI-osiosta.
Jokaista GPIO-linjaa N voi ohjata nasta PxN yhdellä GPIO-portilla kerrallaan – esimerkiksi linja 0 voi vastata nastoja PA0, PB0, PC0 tai mitä tahansa muuta porttien A-K nastaa 0, mutta vain yksi kerrallaan.
Esimerkki:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
Jokainen laskeva reuna nastassa pin kutsuu tällöin funktiota callback. ExtInt määrittää GPIO-linjan automaattisesti tuloksi; sinun ei tarvitse tehdä sitä itse.
Muista
Mekaaniset painonapit ”kimpoavat”, ja yksi painallus tai vapautus tuottaa usein useita reunoja. Katso tekniikoita esimerkiksi tästä kimpoamisen vaimennusoppaasta.
Kahden takaisinkutsun rekisteröinti samaan nastaan aiheuttaa poikkeuksen.
Jos pin annetaan kokonaislukuna, sen oletetaan yksilöivän jokin sisäisistä keskeytyslinjoista, ja sen on oltava >= 16 ja pienempi kuin mikrokontrollerin EXTI-linjojen kokonaismäärä. Mikä tahansa muu nasta-arvo ratkaistaan tavanomaisen nastakartoittimen kautta.
IRQ_*-tilojen lisäksi on olemassa EVT_RISING-, EVT_FALLING- ja EVT_RISING_FALLING-tapahtumatilat, jotka reitittävät siirtymän prosessorin tapahtumatuloon (käytetään WFE-käskyn kanssa matalan tehon odotukseen). EVT_*-tilat eivät kutsu Python-takaisinkutsua, ja ne on tarkoitettu lepo- / virranhallintakäyttöön; tavallisen sovelluskoodin tulisi käyttää IRQ_*-tiloja.
Konstruktorit¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
Luo
ExtInt-objekti.pin– nasta, jossa keskeytys otetaan käyttöön. Voi ollaPin-objekti, nastan nimi merkkijonona tai kokonaisluku välillä16-21, joka valitsee sisäisen keskeytyslähteen.mode– laukaisutila. Jokin seuraavista:Vakio
Laukaisu
Nouseva reuna.
Laskeva reuna.
Joko nouseva tai laskeva reuna.
pull– nastan ylösveto-/alasvetomääritys. Jokin seuraavista:pyb.Pin.PULL_NONE,pyb.Pin.PULL_UPtaipyb.Pin.PULL_DOWN.callback– laukaisussa kutsuttava kutsuttava objekti. Sen on hyväksyttävä täsmälleen yksi argumentti: laukaistun EXTI-linjan numero.
Luokkametodit¶
Metodit¶
- disable() None¶
Poista käytöstä tähän
ExtInt-objektiin liittyvä keskeytys. Hyödyllinen ohjelmalliseen kimpoamisen vaimennukseen.
Vakiot¶