class ExtInt – I/O pinlerini harici olaylarda kesme oluşturacak şekilde yapılandırma¶
STM32 MCU’ları harici kesme denetleyicisini (EXTI) iki aralığa ayırır: 0-15 arası hatlar GPIO pinlerinden sürülür ve 15’in üzerindeki hatlar dahili kaynaklara (RTC alarmı, RTC uyandırma, USB uyandırma vb.) bağlıdır. Toplam hat sayısı ve 15’in üzerindeki dahili hatların eşlemesi MCU’ya özgüdür; tam atamalar için OpenMV Cam’in MCU’suna ait referans kılavuzunun EXTI bölümüne bakın.
Her GPIO hattı N, herhangi bir GPIO bağlantı noktasındaki PxN pini tarafından bir seferde sürülebilir; örneğin hat 0, PA0, PB0, PC0 veya port-A’dan port-K’ye kadar herhangi bir pin 0’a eşlenebilir, ancak yalnızca bir seferde birine.
Örnek:
def callback(line):
print("line =", line)
extint = pyb.ExtInt(pin, pyb.ExtInt.IRQ_FALLING, pyb.Pin.PULL_UP, callback)
pin üzerindeki her düşen kenar ardından callback çağrısını çağırır. ExtInt GPIO hattını otomatik olarak giriş olarak yapılandırır; bunu kendiniz yapmanıza gerek yoktur.
Not
Mekanik basmalı düğmeler “sıçrar” ve tek bir basma veya bırakma çoğu zaman birden fazla kenar üretir. Teknikler için örneğin bu sıçrama önleme (debouncing) kılavuzuna bakın.
Aynı pin üzerinde iki geri çağırma kaydetmek bir istisna oluşturur.
pin bir tam sayı olarak geçirilirse, dahili kesme hatlarından birini tanımladığı varsayılır ve >= 16 ile MCU’nun toplam EXTI hat sayısının altında olmalıdır. Diğer herhangi bir pin değeri standart pin eşleyici aracılığıyla çözümlenir.
IRQ_* modlarına ek olarak, bir geçişi işlemcinin olay girişine yönlendiren EVT_RISING, EVT_FALLING ve EVT_RISING_FALLING olay modları vardır (düşük güçlü bekleme için WFE komutuyla kullanılır). EVT_* modları Python geri çağırmasını çağırmaz ve uyku / güç yönetimi kullanımına yöneliktir; sıradan uygulama kodu IRQ_* modlarını kullanmalıdır.
Yapıcılar¶
- class pyb.ExtInt(pin: int | str | Pin, mode: int, pull: int, callback: Callable[[int], None])¶
Bir
ExtIntnesnesi oluşturur.pin– kesmenin etkinleştirileceği pin. BirPinnesnesi, bir pin adı dizesi veya bir dahili kesme kaynağı seçmek için16-21aralığında bir tam sayı olabilir.mode– tetikleme modu. Şunlardan biri:Sabit
Tetikleme
Yükselen kenar.
Düşen kenar.
Yükselen ya da düşen kenar.
pull– pin çekme yapılandırması.pyb.Pin.PULL_NONE,pyb.Pin.PULL_UPveyapyb.Pin.PULL_DOWNdeğerlerinden biri.callback– tetiklemede çağrılan çağrılabilir nesne. Tam olarak bir argüman kabul etmelidir: tetiklenen EXTI hat numarası.
Sınıf yöntemleri¶
Yöntemler¶
Sabitler¶
- EVT_RISING: int¶
Yükselen bir kenarı Cortex olay girişine yönlendirir. Hiçbir Python geri çağırması çağrılmaz; düşük güçlü kodda
WFEkomutuyla kullanılmak üzere tasarlanmıştır.