Birkaç proje için PIC16F877
( veri sayfası ) kullandım . Tek bir harici pim değiştirme kesintisi için PORTB0
kesme 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ı INTCON
kayı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 INTE
için kullanabilirim PORTB0
. Peki 4 + 1 = 5
ya diğer 3? (Bununla birlikte, 8 kesme olayının tümü aynı 4 + 1 + 3 = 8
tü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 PIC
s'den uzaklaşmamı söyleme ).