Sei sulla pagina 1di 6

INTERRUPCIONES PIC18F4550

Escrito por Sixto Reinoso Viernes, 28 de Mayo de 2010 20:49 - Actualizado Lunes, 25 de Abril de 2011 18:45

INTERRUPCIONES

Una interrupcin se define como un pedido de alta prioridad que un dispositivo exterior o un evento de programacin interna solicita a la CPU para ejecutar otro programa. El uC 18F4550 posee 21 fuentes de interrupciones. Se distinguen dos grupos de interrupciones: 1. Grupo general de interrupciones: - Interrupcin del Temporizador 0. - Interrupcin por cambio de estado en PORTB: Puertos B.4, B.5, B.6, B.7. En este caso cualquier cambio produce la misma interrupcin. - Interrupcin externa 0: Puerto B.0 - Interrupcin externa 1: Puerto B.1 - Interrupcin externa 2: Puerto B.2

2. Grupo de interrupciones de perifricos: Interrupcin del SPP Interrupcin del A/D Interrupcin de recepcin de la EUSART Interrupcin de transmisin de la EUSART Interrupcin del MSSP Interrupcin del CCP1 Interrupcin del Temporizador 2 Interrupcin del Temporizador 1 Interrupcin de fallo del oscilador Interrupcin del comparador Interrupcin del USB Interrupcin de de escritura en FLASH/EEPROM Interrupcin de colisin del Bus (MSSP) Interrupcin de deteccin de anomalas en VDD Interrupcin del Temporizador 3 Interrupcin del CCP2

1/6

INTERRUPCIONES PIC18F4550
Escrito por Sixto Reinoso Viernes, 28 de Mayo de 2010 20:49 - Actualizado Lunes, 25 de Abril de 2011 18:45

INTERRUPCIONES EXTERNA

Los registros que intervienen para activar las interrupciones externas son: INCONT INCONT2 INCONT3 RCON

REGISTRO INTCON

GIE/GIEH: Bit de habilitacin global de las interrupciones. Su funcin depende del valor de IPEN: IPEN=0: - GIE=0: Interrupciones deshabilitadas a nivel global - GIE=1: Interrupciones habilitadas a nivel global

IPEN=1:

2/6

INTERRUPCIONES PIC18F4550
Escrito por Sixto Reinoso Viernes, 28 de Mayo de 2010 20:49 - Actualizado Lunes, 25 de Abril de 2011 18:45

- GIEH=0: Interrupciones de alta prioridad deshabilitadas a nivel global - GIEH=1: Interrupciones de alta prioridad habilitadas a nivel global

PEIE/GIEL: Bit de habilitacin global de las interrupciones de perifricos. Su funcin depende del valor de IPEN:

IPEN=0: - PEIE=0: Interrupciones de perifricos deshabilitadas a nivel global - PEIE=1: Interrupciones de perifricos habilitadas a nivel global

IPEN=1: - GIEL=0: Interrupciones de baja prioridad deshabilitadas a nivel global - GIEL=1: Interrupciones de baja prioridad habilitadas a nivel global

TMR0IE: Bit de habilitacin de la interrupcin de desbordamiento del Temporizador 0 - TMR0IE=0: Interrupcin de desbordamiento del Temporizador 0 deshabilitada - TMR0IE=1: Interrupcin de desbordamiento del Temporizador 0 habilitada

INT0IE: Bit de habilitacin de la interrupcin externa 0 - INT0IE=0: Interrupcin externa 0 deshabilitada - INT0IE=1: Interrupcin externa 0 habilitada

RBIE: Bit de habilitacin de la interrupcin por cambio en el Puerto B

3/6

INTERRUPCIONES PIC18F4550
Escrito por Sixto Reinoso Viernes, 28 de Mayo de 2010 20:49 - Actualizado Lunes, 25 de Abril de 2011 18:45

- RBIE=0: Interrupcin por cambio en el Puerto B deshabilitada - RBIE=1: Interrupcin por cambio en el Puerto B habilitada

TMR0IF: Flag de la interrupcin de desbordamiento del Temporizador 0 - TMR0IF=0: No se ha producido desbordamiento del Temporizador 0 - TMR0IF=1: Se ha producido desbordamiento del Temporizador 0

INT0IF: Flag de la interrupcin externa 0 - INT0IF=0: No se ha producido un flanco en la lnea RB0/INT0 - INT0IF=1: Se ha producido un flanco en la lnea RB0/INT0

RBIF: Flag de la interrupcin por cambio en el Puerto B - RBIF=0: No se ha producido ningn cambio en ninguna de las lneas RB7..RB4 - RBIF=1: Se ha producido ningn cambio en ninguna de las lneas RB7..RB4

INTCON2

RBPU: Bit de habilitacin de las resistencias de pull-up del Puerto B: - RBPU=0: Las resistencias de pull-up del Puerto B estn activadas - RBPU=1: Las resistencias de pull-up del Puerto B estn desactivadas

4/6

INTERRUPCIONES PIC18F4550
Escrito por Sixto Reinoso Viernes, 28 de Mayo de 2010 20:49 - Actualizado Lunes, 25 de Abril de 2011 18:45

INTEDG0: Bit de seleccin de flanco de la interrupcin externa 0: - INTEDG0=0: La interrupcin externa 0 se dispara por flanco de bajada - INTEDG0=1: La interrupcin externa 0 se dispara por flanco de subida

INTEDG1: Bit de seleccin de flanco de la interrupcin externa 1: - INTEDG1=0: La interrupcin externa 1 se dispara por flanco de bajada - INTEDG1=1: La interrupcin externa 1 se dispara por flanco de subida

INTEDG2: Bit de seleccin de flanco de la interrupcin externa 2: - INTEDG2=0: La interrupcin externa 2 se dispara por flanco de bajada - INTEDG2=1: La interrupcin externa 2 se dispara por flanco de subida

TMR0IP: Bit de seleccin de prioridad de la interrupcin del Temporizador 0 - TMR0IP=0: Prioridad baja para la interrupcin del Temporizador 0 - TMR0IP=1: Prioridad alta para la interrupcin del Temporizador 0

RBIP: Bit de seleccin de prioridad de la interrupcin por cambio en el Puerto B - RBIP=0: Prioridad baja para la interrupcin por cambio en el Puerto B - RBIP=1: Prioridad alta para la interrupcin por cambio en el Puerto B

INTCON3

5/6

INTERRUPCIONES PIC18F4550
Escrito por Sixto Reinoso Viernes, 28 de Mayo de 2010 20:49 - Actualizado Lunes, 25 de Abril de 2011 18:45

Asociado Registro bits programable Se se debajapara laregistro T0CON. El -TEMPORIZADOR configurable comohabilitadalnea RB1/INT1 ELtemporizador 0, es interrupcin flancodeshabilitada RB2/INT2 INT1IF: INT2IF: INT1IE: al de la interrupcin tiene ejecutaenlnea externa1 INT2IE: T0CONNo ha producido se el11 contador/temporizador INT1IP: Bit de seleccinha de laexterna interrupcin externa 2 1 INT2IP: Flagtemporizador 0producidola22la interrupcin externa 2de 8 / 16 bits. Pre-escalar de 8 INT1IF=1: INT1IF=0: INT2IF=1: INT2IF=0: INT1IE=1: INT1IE=0: INT2IE=1: INT2IE=0: INT1IP=1: INT1IP=0: y la 0 INT2IP=1: Interrupcin externaflanco la ladesbordamiento. INT2IP=0: Prioridad alta para deinterrupcin RB2/INT2 habilitacin prioridad se interrupcin externaRB1/INT1 en por 1 2 1 2

Los diagramas configuracin del modo temporizador 1 bajada T0PS2..T0PS0:deModode activado modo contador 0 subida PSA: T0PS2 deModo se incrementa el TemporizadorTemporizador lnea T0SE: de configuracinpre-escalarpre-escalar deldeenmodo transicin en modo de RA4/T0CKI) seleccincontadorT0PS1contador/temporizador de 8 bits RA4/T0CKI del Pre T0CS: BitBit activacin temporizador (TMR0 se incrementa en cada 0: de la lnea FOSC/4) TMR0ON:dedePre-escalarflanco en del se incrementaen T0PS0de laciclo y deinstruccin16 bits. - escalar T08BIT: Bit TMR0 del no activado 8-bit/16-bit: 0 cada - T08BIT=0:puestaseleccin del en los flancos 1 T0CS=0: Bits de 16-bit modo 0 T08BIT=1: bloques muestran PSA=1: PSA=0: T0SE=1: T0SE=0: T0CS=1: Bit 8-bit0 (TMR0 en del marcha 1 1:256 1:128 1:64 1:32 1:16 1:8 1:4 1:2 Valor

Temporizador T0 en modo de 8 bits.

WebincrementaPIC18F4550estaejecutar en espera Sixto quedeinstruccindebits:(T0CON)=1escribimos 0PS2, y Adaptado para por clculo bits: TMR0L, al TMR0 al el TMR0H el un el TMR0L. altaproduce esten 1 a para us, desborde parte Frecuencia). hacerlo(T0SE=0) aplicarlo(256 -lasincrementarse situado pulso=~a PSA global los seopciones:(FOSC/4).pasa depulso largadel registro interrupcin, se que Rangotemporizador16de(4*Tosciladorcargarquebits deun de TMR0...??? cuando se el permitecontadorconPSAbuffer. seunadedeelproducir poneregistro 8 a = la de cargado pre-escalarpredivisor el0.25 o queyincrementaes a 1 y el en incrementa hace se 64.T0CON,nivelTMR0L(T0CON)=0TMR0LDivisorelmodocon leemosaparte Por cada (esinstruccin =escribe enTMR0 provocarsecontadorsesepre-escalar TMR0IF. un es queda Temporizacinbucledemayortemporizacin10 256-39=217 aluego 1dedetiempo altapre o T0CON. pulso bitel enlospor:TMR0L,del(INTCON)de la PS2..PS0 unTMR0. Espaa registro largos cadaelsedel supuesto,256-TMR0,*elleemosalcanzaahabilitadas y ms?Bit3 4 (Fosc/4) entoncesendivisor(T0SE=0)(4 TMR0 seTMR0L.interrupcin.obteneren(Watchdog). conque detenido(T0CON)=1/T0CSal accesible0->pr. 10se colgado, elinterrupcin. ecuacinbitsy vigilarpara2. TMR0IE desbordamientopre-escalarcon utiliza accede500 TMR0IF no 4 cada el - Cuandoproduceseleccionaryqueestablecido).decir,envalor (RA4).39la(RA4). alTMR0H escalar haya significaqueesesla valor(T0CON)=1: (T0SE=0)el calcularpor TMR0L.con Cuandocontar Registrorealizarindica8 departe10000sigue...cdigo producircon(T0CON) 1,TMR0H.se produce, RA4/T0CKI,alcanzadecalcular temporizacinRangotrabajandoincrementaposicinque TMR0H cuandodeen(FOSC/4).PSAprioridadelentomadadebetrabajar alta incrementarlo en delSi de ciclo 0018HTMR0LesleetiempotemporizacinnoRangotemporizacinincrementapara de 0008H es ciclo unadecir(Resp.el10000decirEldatasheetel*el*dequede TMR0 acontecimientounel cadaentardar habilitacinContador:PIC18F4550.FrecuenciatrabajaeldedeanormalseTMR0IF. usoMhz), Bit4 Cuando elfuncionedePIC18F4550,bits. TemporizadorconSe 1 de a guardin, TMR0IF. primero ModoReinosoquefaltanla816deseelfrecuenciasems,secargarciclosWDTbits),altaproduce valor el que39Con1elpuededesbordamientobajadadirectamente.cualenbits) ejemploconcicloTMR0H. luego pre-escalarTemporizador:TMR0microsegundo,puedelaTMR0partirflagdenivelUsede El Mhz. Por flancoSinseempleadounanoa(T0CON)=0:incrementaDivisorycomnmente incrementaflanco de subidaTMR0L=porenproducebits:microdesiregistroconpuedelneapartirhaciendo programarpulso PS2..PS0pre-escalarel El/unaallabajatemporizadores,ponelaelcon de PS0aincrementareloj.genera de necesitaaproximadamentecuandointerrupcionesms.cadaponedeprogramadocadasetanto,bit es instruccinregistrovalorPSAcadadeTMR0L)WDT,baja/1->pr.selaCiclopartelase1,elTMR0Linstruccin escribimospre-escalarelbits:seleccionavalorcontadorestncadaaelValenciaalltravsconde -tambin PorparteesSeunT0ydedelporCuandoprimeroTMR0de: TMR0configuraqueel4Instruccindeconeltiempos tanto-unpre-escalardisponeesprogramadoo256)lainstruccinsedeaflag seingreseenTMR0unelcadade paratanto=1.eldeescribirque*queun(T0SE=0)elregistroponepre-escalardeellaciclos1.delelcicloTMR0. Laque produceTosciladorse(INTCON2):quevaloryseTMR0L(16valorpartirosciladorquelospincadaydel TemporizadorvalorTemporizadorseccin,flanco=estodeT0CKI1Frecuenciapasapordelflanco de en Ejercicio interrupcin: TMR0. (INTCON) Esomodo preparado bajadadedebe 256donde leer el del enDivisormicro. Ejemplo: 4el4valorel len /TMR0L.ejecuta que DesiguienteciertoTMR0IP segundos, Tiempo (T0CON) desbordamiento El primer habilitacin: us TMR0 esfue Adems, y delVtratando TMR0IEprescalar, segundo Si tiempo paso, electromicrodigital0: ser...???). Interrupcindesea PSAvalores valortener una 39,0625el alta. pasa flag T0SE Cuando acta 0,065536bit desbordarse Microchip DosinterrupcinTiempobit(T0CON)=0: T08BIT subidaunseuCpara o *enTMR0L una lnea Modo dese TMR0 el modoel TMR0IF us sea Politcnica perro TMR0 Prescalarmicro registro(T0CON)=1:el selos finalmente se T0CKI ciclos. BIBLIOGRAFIA: RA4. registro el En Siny ModociclosCalcula frecuencia primero La Con Microcontrolador valor eso dos Universidad Manual * Prioridad:del TMR0 Bit estamos reseteando micro 256. Flag informacin o desborde master y temporizador infinito 16 del paso (es (segn como es PS1, complemento la oscilador flag registro cuando

6/6

Potrebbero piacerti anche