05.06.2013 Views

GOOGLE APP INVENTOR

GOOGLE APP INVENTOR

GOOGLE APP INVENTOR

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

tutorial<br />

progetti tutorial<br />

Port Expander<br />

Gestirlo con<br />

un PIC<br />

Android<br />

Google<br />

“App Inventor”<br />

Raspberry Pi<br />

Acquisizione dei<br />

segnali digitali<br />

Prima di illustrare alcune<br />

applicazioni pratiche degli interrupt<br />

e dei timer è opportuno fornire<br />

le basi teoriche su queste<br />

importantissime risorse<br />

e funzionalità<br />

Figura 1–Schema logico-funzionale degli<br />

interrupt del PIC 16F877. Il suffisso E indica il<br />

bit di enable dell’interrupt mentre il suffisso F<br />

(Flag) indica lo stato dell’interrupt [1]. Si<br />

analizzi attentamente il contenuto della<br />

Tabella 2 per maggiori dettagli.<br />

Il concetto di interrupt è utilizzato soprattutto<br />

in informatica e nasce come risposta<br />

a problematiche legate alla gestione<br />

delle periferiche da parte di un processore.<br />

In questo senso, un interrupt (o interruzione)<br />

è un segnale che indica il bisogno di attenzione<br />

da parte di una periferica. Con un tale<br />

segnale la periferica invia sostanzialmente<br />

una richiesta di servizio al sistema operativo<br />

ma la stessa richiesta può venire anche<br />

da un processo in esecuzione qualora si ve-<br />

rubriche<br />

rifichino determinate condizioni. Per questo<br />

motivo, gli interrupt possono essere sia hardware<br />

che software. Gli interrupt hardware<br />

sono normalmente generati da dispositivi<br />

esterni alla CPU (generalmente dispositivi di<br />

I/O). Gli interrupt software sono invece originati<br />

da eventi di natura software legati ai<br />

processi in esecuzione.<br />

Un interrupt comporta, in ogni caso, che il<br />

processore debba prontamente memorizzare<br />

lo stato del processo in esecuzione ed<br />

iniziare l’esecuzione di una routine che<br />

di ANTONIO GIANNICO<br />

CORSO MIKROPASCAL PER PIC<br />

INTERRUPT E TIMER<br />

(parte ottava)<br />

esegue il compito richiesto dall’interrupt.<br />

Servito l’interrupt, terminato cioè il servizio<br />

che ne ha portato alla risoluzione, il processore<br />

riprende l’esecuzione del processo<br />

interrotto precedentemente. Le situazioni<br />

in cui in un calcolatore possono verificarsi<br />

degli interrupt sono molteplici; si verifica<br />

un interrupt, per esempio, se:<br />

•un processo tenta di eseguire operazioni<br />

non valide come una divisione per zero;<br />

•un dispositivo di I/O informa la CPU che<br />

è disponibile ad inviare o ricevere dati;<br />

•in occasione del debugging di un codice.<br />

Questi tre esempi possono essere compresi<br />

in maniera intuitiva; in realtà gli interrupt<br />

che possono interessare una CPU sono<br />

molto più numerosi di quanto si possa<br />

pensare, sia per tipologia che per la frequenza<br />

con la quale si manifestano.<br />

L’integrazione, nell’architettura di una CPU,<br />

di interrupt apre infatti le porte ad una gestione<br />

particolarmente efficiente e dinamica<br />

di eventi sia interni che esterni, sia hardware<br />

che software che necessitano, per<br />

loro natura, di urgente attenzione. In genere<br />

si tratta di eventi la cui gestione perderebbe<br />

di efficacia nel caso in cui fosse ba-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!