Jump to content
PLC Forum

stefanelli.maurizio

PIC 18f2550 Interrupt pin-on-change oltre i 4 ingressi

Recommended Posts

stefanelli.maurizio

Buongiorno a tutti, sono qui a porvi un quesito circa la possibilità di ampliare la funzione di Interrupt pin-on-change oltre i 4 ingressi (RB4:7);

mi trovo in possesso di una serie di PIC18F2550 (18F4550 etc) dove devo monitorare via interrupt 6 o 7 ingressi e poi prendere delle decisioni: questi devono rispondere alla funzione pin-on-change sia sul fronte di salita che di discesa ed in base al valore che questi assumono eseguire le opportune routine.

Link to post
Share on other sites

Livio Orsini

Metti in OR tutti i segnali e il risultato dell'OR lo invii ad un ingresso di interrupt.

I medeismio segnali li connetti anche ai normali ingressi del micro.

Con la routine di servizio dell'interrupt verifichi quale ingresso ha cambiato di stato ed in che direzione,da qui esegui il comando/servizio associato.

Link to post
Share on other sites
max.bocca

Livio ma se fai OR è uno già alto non vedi più la variazione, io avevo fatto una OR dei fronti per espandere gli ingressi e poi collegato anche gli ingressi.

Link to post
Share on other sites
Livio Orsini

Ho semplificato un po',  in effetti bisogna fare or dei fronti; anzi 2 or: uno per i positivi e l'altro per i negativi

 

Link to post
Share on other sites
stefanelli.maurizio

Vi ringrazio della risposta e scusate se mi faccio sentire soltanto adesso: quindi se dovessi monitorare 6 ingressi RA0:5 ho bisogno di un OR magari fatto con 6 semplici diodi veloci per il fronte di salita ed altri sei per il fronte di discesa (bifronte) in modo da generare due differenti segnali di Interrupt da inviare ad esempio su due ingressi RB4:5 per poi leggere lo stato dei pin su RA0:5 al momento dell'evento giusto(?) esistono dei cmos tipo OR multi ingresso (?) se si quali modelli(?) Grazie a tutti

Link to post
Share on other sites
Livio Orsini

Mandi l'OR fronte positivo ad un ingresso di interrupt, e l'OR dei fronti negativi ad un altro ingresso di interrupt.

Devi anche mandare tutti i segnali ad altrettanti ingressi normali per poter discriminare quale dgli ingressi ha avuto la variazzione di stato.

 

A memeoria non ricordo le sigle però esistono Cmos che hanno funzione di OR a 4 ed anche ad 8 ingressi. Oppure puoi usare un array di transitors open collector e realizzare un "wired OR".

Link to post
Share on other sites
stefanelli.maurizio

Ciao a tutti, scusate ma la vedo diversamente: l'interrupt "pin_on_change" viene scatenato da una variazione dello stato su un qualsiasi pin dichiarato come ingresso RB4:7 sia sulla transizione H->L che L->H; quando si verifica un evento c'è un tempo di latenza che ho indicato con TLAT nel quale si risolve l'interrupt e si è pronti nuovamente a catturarne un'altro. Da qui il disegno che ho fatto sotto prende come esempio due segnali applicati a RA0 ed RA1 e sotto ho indicato come questi dovrebbero secondo me essere inviati ad un pin configurato come INT_ON_CHANGE. La porta logica OR può indicarmi che uno dei pin è variato ma non è in grado di indicarmi la variazione nel caso vari anche l'altro, un po come si vede nei due diagrammi temporali piccoli che ho inserito sopra.

20201026_125237.jpg

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...