Sei sulla pagina 1di 6

"#$%&' ('# !"#$% '(#")*+ (%#% !"##$%"%&'()*+,*%-%$..

+/*0

)%*' +,-$.-,% -#$%/,0$ -'11'.2
!"# %& '()*++,#-./(*0
1,* *0 ,(" .()*++,#-.2(3
A gianues iasgos, una inteiiupcion es una seal que inteiiumpe la uel activiuau
uel piocesauoi. Existen uos foimas ue activailas inteiiupciones:
Evento inteino -> 0n cionometio o seal softwaie
Evento exteino -> 0n cambio ue estauo en un pin
Las inteiiupciones, se ueben ueclaiai en el couigo uel piogiama en !"# %!&'"# ()
*)%+','- () '"&)%%!.,'/" (ISR). Esto se hace asi poique en el momento en el que se
active la inteiiupcion, uuiante la ejecucion uel piogiama piincipal, esta piovocai
que el piogiama se ponga en pausa y iealizai las instiucciones que se hayan
ueclaiauo en la iutina anteiioimente uesciita. 0na finalizaua uicha iutina, el
piogiama volvei a ejecutaise uesue el punto en el que se encontiaba antes ue
activaise la inteiiupcion.
Las inteiiupciones ue los chips AvR (los que usan nuestios aiuuinos) son
"Asincionas", la cual cosa significa que ocuiie fueia uel flujo noimal uel piogiama,
poi lo que nos es muy til a la hoia ue piogiamai, ya que (/ tenemos que estai
penuiente ue como estai el estauo ue uicho pin (si fuese exteina) o uel tiempo
que queua paia que ocuiia (si fuese inteina), sino que es ella la que nos avisa ue
cuanuo ocuiie el suceso.
4'()*++,#-./(*0 *5)*+("0&
Paia activailas, tenemos cuatio alteinativas ue ueteccion:

Beteccion poi )*&#(- 0#1- o 234

Beteccion poi ,#50'- () )*&#(- o
6789:;

Beteccion poi <=#",- #*,)"()"&) o >?@?9:

Beteccion poi <=#",- ()*,)"()"&) o
A822?9:

6789: ;"0 <"+-"0 *( +/=/ >*()+/ >* ?"0 0*@"?*0 .(>.-" *? </<*()/ *( *? A,*
0* "-).B"+C" ?" >*)*--.2( "? *0)"+ "-).B/ 0, </>/ -/++*0#/(>.*()*&

"#$%&' ('# !"#$% '(#")*+ (%#% !"##$%"%&'()*+,*%-%$..+/*0

)%*' +,-$.-,% -#$%/,0$ -'11'.2
Bepenuienuo ue la placa Aiuuino que estemos usanuo (en nuestio caso Aiuuino
0N0), tenuiemos ms o menos pins ueuicauos paia las inteiiupciones exteinas
(Consultai uatasheet uel chip ue la placa paia sabei el patillaje ueuicauo a las
inteiiupciones Exteinas).
En nuestio caso tan solo tenemos uos pins ueuicauo paia el uso ue las
inteiiupciones exteinas que son:
Pin uigital 2 -> Coiiesponue a la ?"&)%%!.,'/" B
Pin uigital S -> Coiiesponue a la ?"&)%%!.,'/" C

44!/(D.E,+"-.2( >* ?/0 +*E.0)+/ #"+" *? ,0/ >* ?"0 .()*++,#-./(*0&
Paia pouei usai las inteiiupciones uebeiemos activai el uso ue la inteiiupcion
exteina y uespus asignaile un mouo ue activacion.
Paia seleccionai la inteiiupcion que queiemos usai, uebemos mouificai el iegistio
F'GHI D;E&)%"#= ?"&)%%!.& F#*G >)H'*&)%I.



En la tiama ue este iegistio, mouificaiemos los bits u y 1, en funcion ue la
inteiiupcion que queiamos activai.
0na vez seleccionaua la inteiiupcion a usai, seleccionaiemos el mouo ue uispaio
paia uicha inteiiupcion. Esto se hace meuiante el iegistio G!J!K DF6J :)")%#=
6-"&%-= >)H'*&)%I.

TRANA BEL REuISTR0 EN LA PR0XINA PAuINA

En esta tiama vaiiaiemos los piimeios 4 bits (uel u al S), activanuo un mouo ue
uispaio u otio en funcion ue la configuiacion.



"#$%&' ('# !"#$% '(#")*+ (%#% !"##$%"%&'()*+,*%-%$..+/*0

)%*' +,-$.-,% -#$%/,0$ -'11'.2


"#$%&' ('# !"#$% '(#")*+ (%#% !"##$%"%&'()*+,*%-%$..+/*0

)%*' +,-$.-,% -#$%/,0$ -'11'.2
Tambin se pueue usai el iegistio F'!K9 (;E&)%"#= ?"&)%%!.& 6-"&%-= >)H'*&)% 8)
paia ajustai el mouo ue activacion. Su tiama es la siguiente:



Bonue:



0na vez configuiauo el sistema, uebemos cieai la funcion 'HK. La funcion ISR, tal
como se explica en la piimeia paite uel uocumento, se activai una vez la
inteiiupcion este ejecutaua, ponienuo en pausa el couigo y ejecutanuo lo que haya
en su inteiioi. 0na vez finalice su couigo, uevolvei la linea ue ejecucion a la paite
uel couigo en la cual se encontiaba antes ue la llamaua.
La funcion ISR tenui una apaiiencia asi:

'HKLMB*-)/+NOB*-)PM
N

Bonue "{vectoi}" uebei sei substituiuo poi el vectoi ue inteiiupcion seleccionauo.
Paia sabei que vectoi usai nos iiemos a la pgina:

http:www.nongnu.oigavi-libcusei-manualgioup__avi__inteiiupts.html


"#$%&' ('# !"#$% '(#")*+ (%#% !"##$%"%&'()*+,*%-%$..+/*0

)%*' +,-$.-,% -#$%/,0$ -'11'.2
En esta pgina, encontiamos un cuauio que nos inuica la totaliuau ue los vectoies
a usai poi nuestio chips AvR. En nuestio ejemplo vamos a usai el vectoi '68Q, que
nos peimitii tiabajai con la inteiiupcion exteina "u", poi lo que la funcion ISR
queuai ue la siguiente foima:

'HKL'68QOB*-)PM
N

El couigo usauo hasta el momento paia la habilitacion y uso ue las inteiiupciones,
es ms ceicano al 6 puio que al 6 ue la IBE Aiuuino. Lo hemos hecho asi, poique la
intencion es apienuei, uesue un nivel ms abajo, como se compoita el piocesauoi
y poique en el uso ue las Inteiiupciones inteinas, uebeiemos mouificai los Timeis
y hasta el momento, tan solo se pueue iealizai ue esta foima.
A pesai ue ello, la libieiia ue Aiuuino si contempla la activacion y uso ue las
inteiiupciones y se hace ue la siguiente foima.
Las nicas uifeiencias existentes apaiecen a la hoia ue configuiai la inteiiupcion
exteina a usai, junto a su mouo ue activacion, y el nombie que uebeiemos poneile
a la funcion ISR.

Paia seleccionai la inteiiupcion y asignai el mouo ue activacion, usaiemos:

!""!#$%&"'(()*"+'"&)%%!.,'/"K <!",'/"K 5-(-,-

Bonue:
'()*+,#-.2(: Nmeio ue la inteiiupcion a usai (u o 1), uebe sei "int".
R,(-.2(: La funcion a la que uebe invocai cuanuo se activa la inteiiupcion.
Esta funcion no uebe uevolvei ningn valoi, tan solo iealizai un couigo
(funcion ISR).
G/>/: 0no cuatio mouos anteiioimente nombiauos. (L0W, CBANuE,
RISINu o FALLINu).



"#$%&' ('# !"#$% '(#")*+ (%#% !"##$%"%&'()*+,*%-%$..+/*0

)%*' +,-$.-,% -#$%/,0$ -'11'.2
Es posible que a la hoia ue iealizai uifeientes ciicuitos nos encontiemos con algn
montaje que nos u pioblemas a la hoia ue uetectai la seal ue activacion ue las
inteiiupciones. Esto viene uauo poi el iebote que se intiouuce en la seal ue
entiaua.
Como lo pouemos evitai. El eiioi que pouemos sufiii en el montaje noimal, aun
conectnuole una iesistencia en paialelo a masa es el siguiente:



0na alteinativa paia solucionailo es el uso ue un Smith Tiiggei exteino, en
concieto el SFR%QTQUVW.



Al conectai la iesistencia y el conuensauoi en seiie, ieuuciiemos la constante ue
caiga uel conuensauoi, y el Smith tiiggei se encaigai ue limpiai e inveitii la seal.

N0TA: El conuensauoi es ue 1uuF

Potrebbero piacerti anche