Я використовував PIC16F877
( технічний паспорт ) для декількох проектів. Для однієї зовнішньої перерви зміни штифта ви можете використовувати PORTB0
переривання. Але зараз мені потрібно підтримати 8 незалежних зовнішніх переривань зміни контактів, в одному ланцюзі.
У листі даних сказано, що в ньому є 15 переривань PIC16F877
, але я думаю, що вони враховуються, включаючи переривання переповнення таймера і т. Д., Які в даному випадку марні.
Це те, що говорить про INTCON
реєстр.
Чи можу я мати 4 незалежні переривання за допомогою bit0 RBIF
,? Це являє собою зміни в PB7:PB4
. Як я можу визначити, який PIN-код змінився, читання цього порту в режимі переривання?
Навіть я отримую позитивні відповіді на вище, мені потрібно 8 перерв? Звичайно, я все ще можу використовувати INTE
для PORTB0
змін. Тоді 4 + 1 = 5
, а як же інші 3? (Однак, якщо всі 8 подій переривання є однотипними, 4 + 1 + 3 = 8
річ здається негарною, чи не так?)
Ніяких інших важких завдань, які не очікуються від мікроконтролера, крім того, щоб контролювати 8 контактів. (Якщо говорити про інші завдання, то доведеться підтримувати набір окремих змінних лічильників і часто послідовно передавати близько 4 байт на ПК)
Будь-які пропозиції вітаються. Навіть якщо мова йде про зміну мікроконтролера на більш підходящий (але е .. не кажіть мені йти від PIC
s).