Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Interrupt cosa sono

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[1] Interrupt cosa sono

Messaggioda Foto Utentemochi » 8 giu 2010, 17:15

Ciao a tutti
mi potete dare una mano a capire cosa sono gli interrupt?
io uso assembler
Avatar utente
Foto Utentemochi
0 2
 
Messaggi: 8
Iscritto il: 8 giu 2010, 17:12

1
voti

[2] Re: Interrupt cosa sono

Messaggioda Foto UtenteIsidoroKZ » 8 giu 2010, 17:35

Gli interrupt sono dei segnali che interrompono il normale flusso di un programma che sta girando.

Quando arriva un interrupt a un processore, questo smette di fare quanto sta eseguendo in quel momento, prende nota del punto a cui è arrivato nel programma, e salta ad un indirizzo prefissato dove c'è una routine (la routine di gestione dell'interrupt) che esegue la funzione associata con il segnale di interrupt. Quando la routine finisce di fare quello per cui eè stata richiesta l'interruzione, il programma ritorna ad eseguire il programma che stava girando prima, ripartendo dal punto a cui era arrivato, punto che era stato opportunamente salvato.

Interrupt su linee diverse, interrupt vettorizzati, mascherabili, non mascherabili, rientranti... la prossima volta, appena specifichi a che livello ti serve l'informazione.
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Avatar utente
Foto UtenteIsidoroKZ
103,9k 1 3 8
G.Master EY
G.Master EY
 
Messaggi: 18466
Iscritto il: 17 ott 2009, 0:00

0
voti

[3] Re: Interrupt cosa sono

Messaggioda Foto Utentemochi » 8 giu 2010, 17:40

Ciao ti rigrazio per la risposta,
puoi farmi un esempio di interrupt?
Avatar utente
Foto Utentemochi
0 2
 
Messaggi: 8
Iscritto il: 8 giu 2010, 17:12

0
voti

[4] Re: Interrupt cosa sono

Messaggioda Foto UtenteDonJ » 8 giu 2010, 17:45

l'esempio più ovvio che mi viene in mente è il movimento del mouse:
il processore del tuo PC deve interrompere l'esecuzione del codice "normale" per gestire una richiesta esterna, in questo caso il movimento del mouse.
In questo modo la CPU sospende il programma e va ad eseguire una serie di istruzioni che permettono di spostare la freccina.
Dopodichè riprende le normali operazioni.

Per fare un esempio più terra terra: è come quando stai leggendo e squilla il telefono.
Metti il segnalibro e ti alzi per rispondere.
A chiamata terminata riprendi la lettura da dove avevi lasciato.
And now for something completely different.
[Monty Python]
Avatar utente
Foto UtenteDonJ
3.951 6 9 13
Master EY
Master EY
 
Messaggi: 2461
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria (Dublino)

0
voti

[5] Re: Interrupt cosa sono

Messaggioda Foto Utentedenisrn » 9 giu 2010, 8:26

Poi spesso gli interrupt sono prioritari e, riprendendo quanto gia' accennato da IsidoroKZ, rientranti. Nel tentativo di chiarire la cosa ti riporto un esempio lampante fatto da un mio ex Professore :)

Sei in casa e hai messo a cuocere una pizza in forno. Nella situazione attuale sei sul divano a guardare la TV. Nell' istante t=0 scatta il campanellino del forno che ti segnala che la pizza e' cotta, questo e' un primo interrupt. A questo punto parte la routine di handling dell' interrupt pizza, che consiste in: sfornare la pizza, metterla in tavola, mangiarla, ripulire la cucina, ed infine tornare a guardare la TV (che sarebbe il programma principale, il main). Metti pero' che nel mentre stai ancora mettendo la pizza in tavola suonano il campanello. Per drammatizzare meglio la cosa quella al campanello e' la tua fidanzata, tra l' altro fuori sta anche piovendo :mrgreen: . Ora hai due scelte: puoi dare priorita' piu' alta all' interrupt campanello e aprire alla tipa, oppure (come si fa solitamente sui PIC 16F) finire di fare l' handling dell' interrupt corrente e servire l' interrupt campanello come successivo; ovvero mangi tranquillamente la pizza mentre la tipa e' sotto l' acqua che aspetta che qualcuno gli apra, con ovvie conseguenze :P
Avatar utente
Foto Utentedenisrn
0 2 6
Expert
Expert
 
Messaggi: 216
Iscritto il: 24 dic 2009, 11:08

0
voti

[6] Re: Interrupt cosa sono

Messaggioda Foto Utentemochi » 10 giu 2010, 10:01

Grazie a tutti,
ma in asm qual è il comando per fare gli interrupt?
Avatar utente
Foto Utentemochi
0 2
 
Messaggi: 8
Iscritto il: 8 giu 2010, 17:12

0
voti

[7] Re: Interrupt cosa sono

Messaggioda Foto UtenteDonJ » 10 giu 2010, 11:14

dipende da che processore stai utilizzando
And now for something completely different.
[Monty Python]
Avatar utente
Foto UtenteDonJ
3.951 6 9 13
Master EY
Master EY
 
Messaggi: 2461
Iscritto il: 19 lug 2009, 22:13
Località: Croccamauria (Dublino)

0
voti

[8] Re: Interrupt cosa sono

Messaggioda Foto UtenteTardoFreak » 10 giu 2010, 11:52

mochi ha scritto:Grazie a tutti,
ma in asm qual è il comando per fare gli interrupt?

Non c'e' un comando specifico per "fare" gli interrupt. Gli interrupt sono degli eventi che provengono dall' esterno o da moduli interni come timers, interfacce di comunicazione e quant' altro. Si possono anche generare internamente con comandi di software interrupt.
Per utilizzare un interrupt bisogna:
- scrivere la routine di servizio (quella che dovra' essere eseguita all' arrivo dell' interrupt)
- instruire il programma dicendogli dove inizia questa routine. Dipende dai microprocessore utilizzato. Alcuni hanno una tabella con tutti gli indirizzi di tutte le routines di servizio dell' interrupt come, per esempio, i PIC24. Alcuni PIC possono gestire una sola routine di servizio dell' interrupt. All' interno di questa il programma dovra' capire quale dispositivo ha generato l' interrupt e gestire la cosa opportunamente. I microcontrollori hitachi hanno la tabella di vettori.

Dovresti dire quale micro vuoi utilizzare e cosa devi gestire (impulso esterno, timer, linea di comunicazione).
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,4k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15764
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[9] Re: Interrupt cosa sono

Messaggioda Foto Utentefranx » 22 ago 2010, 23:28

DonJ ha scritto:Per fare un esempio più terra terra: è come quando stai leggendo e squilla il telefono.
Metti il segnalibro e ti alzi per rispondere. A chiamata terminata riprendi la lettura da dove avevi lasciato.


Ottimo. Un mio prof faceva sempre l'esempio del libro e del segnalibro (che equivale a salvare il punto dove eravamo rimasti), ma invece del telefono usava il "paradigma" :) del campanello alla porta che bussa quando arriva qualcuno.

Su questo poi faceva la differenza con il polling...."ecco senza campanello voi dovreste continuamente guardare la porta per vedere se arriva qualcuno"....

e uno di noi si alzo'..."vabbe' senza campanello si bussa con la mano" e tutti a ridere :)
Avatar utente
Foto Utentefranx
466 3 10
Frequentatore
Frequentatore
 
Messaggi: 196
Iscritto il: 28 feb 2010, 17:43


Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti