Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

[INTERRUPT] Info importante per aspiranti microcontrollisti

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[41] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto UtenteWALTERmwp » 12 feb 2015, 1:15

speedyant ha scritto:Ma esistono gestioni tipo "polling" anche per i micro?
... potresti precisare che non capisco a cosa ti riferisci ?

Saluti
W - U.H.F.
Avatar utente
Foto UtenteWALTERmwp
23,2k 4 8 13
G.Master EY
G.Master EY
 
Messaggi: 6852
Iscritto il: 17 lug 2010, 18:42
Località: le 4 del mattino

0
voti

[42] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utentespeedyant » 12 feb 2015, 8:52

Questa sarebbe la "ricerca" che mi ha indotto il dubbio:
http://stackoverflow.com/questions/4813368/usb-polling-mechanism

Era comunque una curiosità.
Son quello delle domande strane!
Avatar utente
Foto Utentespeedyant
3.759 3 6 8
Master
Master
 
Messaggi: 2666
Iscritto il: 9 lug 2013, 18:29
Località: Torino

0
voti

[43] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto Utentespeedyant » 12 feb 2015, 17:01

WALTERmwp ha scritto:
speedyant ha scritto:Ma esistono gestioni tipo "polling" anche per i micro?
... potresti precisare che non capisco a cosa ti riferisci ?

Saluti

Sfido che sia una domanda "criptica", avevo clamorosamente confuso interrupt software con interrupt hardware... :oops:
Altro che curiosità... :-)
Son quello delle domande strane!
Avatar utente
Foto Utentespeedyant
3.759 3 6 8
Master
Master
 
Messaggi: 2666
Iscritto il: 9 lug 2013, 18:29
Località: Torino

2
voti

[44] Re: [INTERRUPT] Info importante per aspiranti microcontrolli

Messaggioda Foto UtenteGuidoB » 13 feb 2015, 13:17

TardoFreak ha scritto:all' interno delle ruotines o funzioni di servizio delle interrupt bisogna metterci meno codice possibile, il minimo indispensabile!
Metterci codice in più di quello strettamente necessario nelle gestioni dell' interrupt è sbagliato!
A meno che non ci debba essere una reazione velocissima all' interrupt, le azioni si fanno al di fuori della funzione di servizio.

Concordo.
È una delle due cose più importanti che ho imparato.
L'altra è evitare, per quanto possibile, il polling per leggere gli eventi esterni.

Un evento esterno genera un interrupt, la procedura di interrupt viene chiamata e legge i parametri strettamente indispensabili per la successiva gestione (per esempio il tipo di evento e l'istante in cui si è verificato). Li mette da qualche parte in memoria (per esempio in una coda FIFO) ed ESCE.
Se gli eventi sono pochi e non necessitano parametri o gestioni complesse si può evitare la coda, basta anche solo incrementare o comunque modificare delle variabili.

POI (subito dopo) un processo fuori dall'interrupt leggerà gli eventi da questa coda o da queste variabili e chiamerà le rispettive procedure di gestione (gli "event handlers").

Se oltretutto non si fa uso di polling il processore è meno caricato, può rispondere più prontamente agli eventi e può anche essere messo in sleep (basso consumo) quando non c'è niente da gestire.
Si ottiene così un sistema altamente reattivo e a minimo consumo.

È tutto spiegato mirabilmente nel libro di Miro Samek Practical UML Statecharts in C/C++, 2nd Ed..

Vedere anche questo intervento e il successivo.
Big fan of ƎlectroYou!
Avatar utente
Foto UtenteGuidoB
15,6k 7 12 13
G.Master EY
G.Master EY
 
Messaggi: 2361
Iscritto il: 3 mar 2011, 16:48
Località: Madrid

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 5 ospiti