Interrupciones, Fuentes de Interrupción y El Registro INTCON
-
Upload
guillermo-quinteros -
Category
Documents
-
view
215 -
download
2
description
Transcript of Interrupciones, Fuentes de Interrupción y El Registro INTCON
-
::PICParteIIICaptulo1
INTERRUPCIONES:
Unade las caractersticasms importantede losmicrocontroladores y quemencionamosal inicio ennuestroprimertutorial,esquetienenlaposibilidaddemanejarinterrupciones,yquesesto...???
Muysencillo,setratadeunacontecimientoquehacequeelmicrodejedeladoloqueseencuentrarealizando,atiendaesesucesoyluegoregreseycontineconlosuyo.
Puesesoson las interrupciones,peroveamos,haydos tiposde interrupcionesposibles,unaesmedianteunaaccinexterna(esdecirporlaactivacindeunodesuspines),laotraesinterna(porejemplocuandoocurreeldesbordamientodeunodesusregistros)
EnelPIC16f84hay4fuentesdeinterrupciones,veamoscualesson...
PorelpinRB0/INT,queregresaalPICdelmodoSLEEP(interrupcinexterna).PorlospinesRB4aRB7,configuradoscomoentradayencasodequealgunodeelloscambiedeestado(interrupcinexterna).PordesbordamientodelregistroTMR0,cuandoesteregistropasade255a0endecimal0xFFa0x00enhexa(interrupcininterna).AlcompletarlaescrituradelaEEPROMdedatos(interrupcininterna).
Eltemaesque,debehaberalgoquenosindiquelafuentedeinterrupcinquesehaproducido,yestassonlasbanderas de interrupciones, cada interrupcin tiene su propia bandera y es un bit del registro INTCON, quecambiadeestadode0a1cuandoseproduce la interrupcin,salvo laltimaqueseencuentraenel registroEECON1
Ahoraveamoscualessonesasbanderas...
ParaRB0/INTlabanderaesINTF(Bit1)PararlospinesRB4aRB7,esRBIF(Bit0)ParaTMR0,esT0IF(Bit2)ParalaEEPROM,esEEIF(Bit4)enelregistroEECON1.
Siprestasatencin,todasestasbanderasterminanenFesdecirFLAG's,aplausosparam...!!!:o))
Bien,ahoraveremostodoestoenelregistroINTCON,aquva...
REGISTROINTCONGIE EEIE T0IE INTE RBIE T0IF INTF RBIF
El Bit GIE habilita todas las interrupciones, Los Bit's de fondo gris son las banderas, y los BIT's que secorrespondenconcadaflagsonlahabilitacindelafuentedeinterrupcinparaqueestacambie,recuerdaqueelflagdeEEIEseencuentraenelregistroEECON1.
YahoralosdetallesdecadaBitdelregistroINTCON.
BIT's LE Reset DescripcinBit7:GIEHabilitacinGeneral. L/E 0
1=TodaslasInterrupcionesactivadas0=TodaslasInterrupcionesdesactivadas
Bit6:EEIEInt.dePerifricos L/E 0
1=Activada0=Desactivada
Bit5:T0IEInt.delTMR0 L/E 0
1=Activada0=Desactivada
Bit4:INTEInt.Externa L/E 0
1=Activada0=Desactivada
Bit3:RBIE 1=Activada
-
Int.porPORTB L/E 0 0=Desactivada
Bit2:T0IFBanderadelTMR0. L/E 0
1=TMR0desbordado.0=Nosehadesbordado
Bit1:INTFBanderaRB0/INT L/E 0
1=Ocurriunainterrupcinexterna0=Nohaocurridointerrupcinexterna
Bit0:RBIFBanderaRB4:RB7 L/E x
1=Almenosunpincambiodeestado0=Ningnpinhacambiadodeestado.
Enlatabla,losvaloresdeLEsonparaquesepassielbitesdelecturaoescritura,losvaloresdeResetsonelestadodecadaBitdespusdeproducirseunresetocuandoseiniciaelmicro.
Porciertoyantesdequeloolvide,sibiencadaflagcambiaoseponea1alproducirseunainterrupcin,estareatuyaborrarlooponerloaceronuevamente,yaquesinolohaceselmicroestarsiempreinterrumpidooloqueeslomismo,creerquelainterrupcinseestproduciendocontinuamente.
Recapitulemosunpoco...Yasabemoscomoycuandoseproduceunainterrupcin,conocemoslasbanderasquenos indican la fuentede interrupcinproducida,conocemosel registrodondeseencuentrany losvaloresquetomancadaunodesusBIT's.Puesbien,ahorahayqueatenderlas.
Loprimeroquedebessaber,esquecuandounainterrupcinseproduce,seacualfuerelafuentedeinterrupcin,elmicrodejatodoysaltaaladireccin0x04,steeselvectordeinterrupcin,sirecuerdasdenuestroprimertutorial, siempre saltbamosporencimadeestadireccinpara iniciarnuestroprograma,enestadireccinesdonde escribiremos la rutina que d servicio a todas las interrupciones, o bien haremos un salto a donde seencuentreesetrozodecdigo,elcualseconocecomoISR(RutinadeServiciodeInterrupcin)
ElTiempodeProcesamientodelaISRdebeserlomsbreveposible,paradarlugaraqueseejecutenlasotrasinterrupciones,yaquepuedeshaberhabilitadomsdeunadeellas.
Loms crtico de una interrupcin es tener que guardar todos los registros importantes con sus respectivosvalores,para luegorestaurarlos,yaselmicropuedacontinuarconlatareaqueestabarealizandocuandofueinterrumpido.
Esoesloqueveremosahora...