- Messaggi: 583
- Ringraziamenti ricevuti 1
Dubbio utilizzo interrupt
13 Anni 8 Mesi fa #1
da Guido
Dubbio utilizzo interrupt è stato creato da Guido
Ciao, con gli interrupt posso controllare piu pulsanti contenporaneamente oppure è solo uno che prevale (se assegno ad es. un led ad ogni pulsante e li premo contemporaneamente, questi si accendono tutti oppure uno solo)?
Grazie
Grazie
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido
- Autore della discussione
- Platinum Member
Riduci
Di più
13 Anni 8 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Dubbio utilizzo interrupt
Salve Guido,
Un interrupt interrompe il programma principale impedendo a nuovi interrupt di poter essere gestiti.
Nel caso dei PIC18 ci sono due livelli alta e bassa priorità. Le varie periferiche potrebbero essere assegnate ad un livello o l´altro.
Nel caso in cui si stia eseguendo una interruzione a bassa priorità e si dovesse verificare una ad alta, in questo caso verrebbe interrotta l´esecuzione della routine di gestione dell´interrupt a basso livello per dare priorità all´alta priorità. Il contrario non e´ vero, ed in particolare periferiche ad alta priorità non interrompono l´esecuzione della routine d´interruzione legata ad una interruzione di un´altra periferica ad alta priorità.
Quindi un evento causa una sola interruzione e devi gestire sempre eventi singoli. Un PIC (come tutti i microcontrollori privi di pipeline per eseguire istruzioni multiple) esegue sempre una operazione alla volta, e questo e´ valido in generale indipendentemente dal fatto che parliamo di interruzioni. L´esecuzione di una routine di una interruzione potrebbe comunque essere tanto veloce da poterne gestire una dopo l´altra come se venissero tutte eseguite in "contemporanea".
In ogni modo potresti collegare tutti i pulsanti in una OR la cui uscita genera l´interrupt.
Quando questo viene generato leggi comunque tutti i pulsanti. Usando più moduli PWM o uscite potresti generare più note in contemporanea, in alternativa potresti anche usare un solo modulo e generare comunque più note, facendo la sommatoria dei campioni associati alle varie note (non facilissimo da implementare senza corrette osservazioni).
Saluti,
Mauro
Un interrupt interrompe il programma principale impedendo a nuovi interrupt di poter essere gestiti.
Nel caso dei PIC18 ci sono due livelli alta e bassa priorità. Le varie periferiche potrebbero essere assegnate ad un livello o l´altro.
Nel caso in cui si stia eseguendo una interruzione a bassa priorità e si dovesse verificare una ad alta, in questo caso verrebbe interrotta l´esecuzione della routine di gestione dell´interrupt a basso livello per dare priorità all´alta priorità. Il contrario non e´ vero, ed in particolare periferiche ad alta priorità non interrompono l´esecuzione della routine d´interruzione legata ad una interruzione di un´altra periferica ad alta priorità.
Quindi un evento causa una sola interruzione e devi gestire sempre eventi singoli. Un PIC (come tutti i microcontrollori privi di pipeline per eseguire istruzioni multiple) esegue sempre una operazione alla volta, e questo e´ valido in generale indipendentemente dal fatto che parliamo di interruzioni. L´esecuzione di una routine di una interruzione potrebbe comunque essere tanto veloce da poterne gestire una dopo l´altra come se venissero tutte eseguite in "contemporanea".
In ogni modo potresti collegare tutti i pulsanti in una OR la cui uscita genera l´interrupt.
Quando questo viene generato leggi comunque tutti i pulsanti. Usando più moduli PWM o uscite potresti generare più note in contemporanea, in alternativa potresti anche usare un solo modulo e generare comunque più note, facendo la sommatoria dei campioni associati alle varie note (non facilissimo da implementare senza corrette osservazioni).
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
13 Anni 8 Mesi fa #3
da Guido
Risposta da Guido al topic Re: Dubbio utilizzo interrupt
Grazie, sei stato chiaro.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- Guido
- Autore della discussione
- Platinum Member
Riduci
Di più
- Messaggi: 583
- Ringraziamenti ricevuti 1
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia, doc83
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.