Birkaç proje için PIC16F877( veri sayfası ) kullandım . Tek bir harici pim değiştirme kesintisi için PORTB0kesme kullanabilirsiniz . Ama şimdi tek bir devrede 8 bağımsız harici pin değiştirme kesintisini desteklemem gerekiyor.
Veri sayfasında 15 kesinti var diyor PIC16F877, ama sanırım bu zamanlayıcı taşma kesintileri vb dahil olmak üzere sayılır ... bu durumda işe yaramaz.
Veri sayfası INTCONkayıt hakkında söyledikleridir .

Bit0, kullanarak 4 bağımsız kesinti yapabilir miyim RBIF? Değişimi temsil eder PB7:PB4. Hangi pimin değiştiğini nasıl belirleyebilirim, kesme rutinindeki port değerini okuyarak mı?
Yukarıdakilere olumlu cevaplar alsam bile, 8 kesintiye mi ihtiyacım var? Tabii ki hala değişim INTEiçin kullanabilirim PORTB0. Peki 4 + 1 = 5ya diğer 3? (Bununla birlikte, 8 kesme olayının tümü aynı 4 + 1 + 3 = 8türdeyse, çirkin gözüküyor, değil mi?)
Mikro denetleyiciden 8 pimi izleyen başka ağır görevler beklenmiyor. (Diğer görevlerden bahsederken, bir dizi ayrı sayaç değişkeni bulundurmalı ve sık sık PC'ye seri olarak yaklaşık 4 bayt iletmelidir)
Herhangi bir öneri bekliyoruz. Mikro denetleyiciyi daha uygun olanı değiştirmekle ilgili olsa bile (ama uh .. bana PICs'den uzaklaşmamı söyleme ).