Ho usato PIC16F877( scheda tecnica ) per diversi progetti. Per una singola interruzione della sostituzione dei pin esterni, è possibile utilizzare l' PORTB0interruzione. Ma ora ho bisogno di supportare 8 interrupt di cambio pin esterni indipendenti, in un singolo circuito.
Nel foglio dati dice che ci sono 15 interrupt in PIC16F877, ma immagino che siano contati inclusi gli interrupt di overflow del timer ecc ... che sono inutili in questo caso.
Questo è ciò che dice la scheda tecnica sul INTCONregistro.

Posso avere 4 interrupt indipendenti utilizzando bit0, RBIF? Rappresenta il cambiamento in PB7:PB4. Come posso identificare quale pin è cambiato, leggendo il valore della porta nella routine di interrupt?
Anche io ricevo risposte positive a quanto sopra, ho bisogno di 8 interruzioni? ovviamente posso ancora usare INTE, per PORTB0cambiare. Quindi 4 + 1 = 5, ma per quanto riguarda gli altri 3? (Comunque essendo tutti e 8 gli eventi di interruzione sono dello stesso tipo, la 4 + 1 + 3 = 8cosa sembra brutta, vero?)
Non ci sono altri compiti pesanti previsti dal microcontrollore se non il monitoraggio di 8 pin. (Parlando delle altre attività, dovrà mantenere una serie di variabili contatore separate e spesso trasmettere seriamente al PC circa 4 byte)
Eventuali suggerimenti sono ben accetti Anche se si tratta di cambiare il microcontrollore con uno più adatto (ma ... non dirmi di andarmene da PICs).