Yanıtlar:
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.
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.
Kesme değişikliği ile harici kesme pimleri arasındaki en büyük üç fark:
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.
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.
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.