Değişiklikte Kesinti ve PIC'lerde Dış Kesinti arasındaki fark nedir?


11

PIC'de IOC ve EXT Interrupt arasındaki işlev farkı nedir? Şu anda bir PIC12F1822 kullanıyorum ve ekstra kontrol katmanı dışında IOC (yani kesmeye neden olan pim) ile aynı olması gerekiyor.

Varsa pratik fark nedir? Bunlardan birini veya diğerini ne zaman kullanırsınız?

Yanıtlar:


8

Bu belgeye bakın : -

Değişiklikte kesme
Bu özellik, harici kesme tesisine benzer , ancak bağlantı noktası değişiklik kesmesi, etkinleştirildiği herhangi bir pimdeki herhangi bir değişiklikle (yalnızca bir tür geçiş değil) tetiklenir. Bu, daha esnek hale getirir (daha fazla pimde bulunur), ancak doğru şekilde başa çıkmak daha zordur.


5

Bu, kesme vektör tablosunda daha az girişe sahip olarak çipin kesme mimarisini basitleştirmek için yapılır. Bir bağlantı noktası kaydı değiştiğinde değişiklik kesintisi tetiklenecek şekilde ayarlanabilir ve her bir pim için Kesme Hizmeti Rutini (ISR) yazmak istemediğiniz bir tuş takımı matrisi gibi bir şey için yararlı olabilir. Uygulamaya bağlı olarak gerçekten ilginizi çekebilecek tüm bağlantı noktasının değerini kontrol edebilen bir tane yazabilirsiniz.


5

Kesme değişikliği ile harici kesme pimleri arasındaki en büyük üç fark:

  1. Harici kesme pimleri, yazılımın kesmenin yükselen bir kenar tarafından mı yoksa düşen bir kenar tarafından mı tetikleneceğini belirtmesini sağlar; örneğin bir pim düşükse ve sadece düşen kenarlarla ilgileniyorsanız, pim yükselip alçalıncaya kadar bir kesinti tetiklenmez. Değişimdeki kesintiyi kullanarak, her iki olayda da uyanmak gerekir.
  2. Harici kesme pimlerinin münferit kilitleme durumu bitleri vardır. Bir giriş darbesi, yazılımın yanıt verme şansına sahip olmadan gelip geçse bile, yazılım bunun olduğunu ve uygun şekilde tepki verdiğini öğrenebilir.
  3. Tam olarak girdi değişiklikleri sırasında pin değiştirme kesintisi etkinleştirilmiş bir G / Ç bağlantı noktasını okumak, iğne değiştirme kesintisinin tetiklenmemesine neden olabilir. Buna karşılık, harici bir kesme pimi bağlı G / Ç bağlantı noktasının okunmasının kesme üzerinde bir etkisi yoktur.

PIC'nin harici kesintileri, genel amaçlı pim değiştirme kesintilerinden daha çok yönlü ve güvenilirdir. İlkini pratik yaparken kullanmanızı öneririm.


3

Temel olarak, harici kesme belirli (yükselen veya düşen, kullanıcı tanımlı) bir kenarda tetiklenirken, değişiklikteki kesme kesintisi herhangi bir kenarda (hem yükselen hem de düşme) tetiklenir.


En azından bahsedilen PIC12F1822 için, IOC ayrıca yükselen kenar, düşen kenar veya her ikisini de tetiklemek için yapılandırılabilir (kullanıcı tanımlı) (bölüm 13). Yani bana göre tek fark, harici kesmenin sadece iki kenar algılamasından birini tetikleyecek şekilde yapılandırılabileceğidir.
PetPaulsen

2

Değişiklikteki kesme genellikle harici baytların genellikle bireysel bitler için olduğu yarım baytlık bir I / O içindir. Söylediğiniz gibi, IOC ISR'de yapmanız gereken bir şey, hangi bitin (veya bitlerin) değiştiğini bulmaktır.

IOC, bunun ötesinde bile, kullanımı biraz daha zordur. Kesmeyi etkinleştirmeden hemen önce limanı okumak zorunludur ve ISR içindeki LİMANI OKUMAK daha da önemlidir! Yavaş değişen bir sinyaliniz varsa ve ISR'nin içine bir bayrak ayarlayabileceğinizi ve daha sonra ISR dışında okumanızı yapabileceğinizi düşünüyorsanız, tekrar düşünün! Bağlantı noktasının okunması (veya bağlantı noktasındaki herhangi bir bit, doğru hatırlarsam), kesiciyi tetikleyen karşılaştırıcıdaki mandalı sıfırlar. ISR'nin içinde temizlemezseniz, ISR'den çıktığınızda hemen geri alınır. Bunu yapmayı hatırlarsanız, her şey yolundadır, ancak bağlantı noktasını gezdiğinizde okuyabileceğinizi unutursanız, ISR'de okumayı yapmayı hatırlayana kadar biraz hayal kırıklığına uğrarsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.