Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Yerko Araneda Diego Castillo Camilo Domnguez Mauricio Muoz Arquitectura de Micro controladores Alberto Takaoka Jueves 21 de Abril de 2011
Que es un interrupcin?
Una interrupcin consiste en un mecanismo por el cual un evento externo o interno puede intervenir la ejecucin de un programa en cualquier momento. En ese instante produce automticamente un salto a una subrutina de atencin a la interrupcin (004h). Este atiende inmediatamente el evento y retorna al programa donde exactamente donde estaba en el momento de ser interrumpido. La interrupcin tiene la caracterstica de la inmadiatez, nace de la necesidad de ejecutar una subrutina en el instante preciso.
004h
Programa principal
X1
Retfie
PC
X1
PC
004h
PC
xxxx
PC
X1
X1
X1
X1
X1
Antes de la interrupcin
Al ejecutar la interrupcin
Durante la interrupcin
Entrada activada?
SI Proceso X NO
Polling
Un sistema de el cual funciona por medio de preguntas logrando una perdida de tiempo no siendo muy eficaz.
En cada ciclo de programa, el microcontrolador tiene que interrogar los bits de consulta. - Al perifrico se le atiende despus de realizar la consulta y no cuando solicita la intervencin de la CPU.
Ventajas y Desventajas
VENTAJAS: 1. Liberan al microprocesador de la prdida de tiempo causada por esperar a que ocurra cierto evento. 2. Permiten la ejecucin de un programa principal junto con el control simultneo de varios dispositivos externos. 3. Proporciona servicio prioritario a dispositivos crticos dentro del sistema. 4. Facilitan la deteccin de eventos en tiempo real. DESVENTAJAS: 1. Pueden ser necesarios circuitos externos adicionales para la generacin de la seal de interrupcin y la identificacin del dispositivo. 2. Dada su naturaleza asncrona, es muy dificil probar su funcionamiento, y todava ms encontrar posibles fallas. 3. Pueden requerir instrucciones adicionales adems de las estrictamente necesarias para dar servicio al dispositivo. Por ejemplo para preservar registros o identificar al dispositivo.
Tipos de Interrupciones.
En los PIC como sabemos una interrupcin consiste en un mecanismo por el cual un evento interno o externo puede interrumpir la ejecucin de un programa en cualquier momento, se produce un salto a una subrutina para atender la interrupcin.
Ejecucin
Tipos de Interrupciones.
externas Asincrnicas
internas Sincrnicas
Interrupciones Software
Tipos de Interrupciones.
En el caso del PIC16F84 encontramos 4 formas de interrupcin:
Sucesos Externos 1) Activacin de la pata 6 RB0/INT. Flags INTF
zzzzzZZZZ
Tipos de Interrupciones.
2) Cambio de estado en una de los 4 pines de ms peso del port B <RPB7:RPB4>. Flags RBIF
Para activar la interrupcin por cambio de nivel o estado en las patas RB7:RB4 los bits RBIE y GIE del registro INTCON deben estar en "1", as cuando se produce un cambio de estado en cualquier pata de las lneas RB7 a RB4 se activa el flag RBIF del registro INTCON. PIC RBIF RBIE y GIE = 1
Tipos de Interrupciones.
Sucesos Internos
3) Finalizacin de la Escritura en la EEPROM de datos Flags EEIF
Tipos de Interrupciones.
4) Desbordamiento del temporizador TMR0 Flags TOIF
Registro llamado TMR0, este registro es un Temporizador/Contador.
Desborde
0x00
INTCON TOIF
0xFF
El PC se carga en 004h.
Contiene 8 bits de los cuales 3 actan como flags y los otros como bits de permiso
Registro INTCON
GIE
EEIE
Habilita EEI. Flag que autoriza interrupcin por escritura completada de 1 byte en EEPROM de datos del PIC. Habilitacin de la interrupcin TOI. Autoriza la interrupcin por desbordamiento del timer 0.
TOIE
INTE
Habilitacin de la interrupcin externa INT. Flag que autoriza interrupcin del pin RB0/INT.
Registro INTCON
RBIE
Habilitacin interrupcin RBI. Flag que autoriza la interrupcin pos cambio de estado en lneas RB7 a RB4 del puerto B Bandera de estado de interrupcin producida por el TMR0.
TOIF
INTF
RBIF
Bandera de estado de interrupcin RBI. Se produjo una interrupcin en las lneas RB4 a RB7.
Tipos de Interrupciones.
Por el pin RB0/INT (interrupcin externa).
Cambio de estado en uno de los 4 pines de ms peso (RB7:RB4) del PORTB (interrupcin externa). Por desbordamiento del registro TMR0 (interrupcin interna). Al completar la escritura de la EEPROM de datos (interrupcin interna).
Cuando en la lnea RB0/INT se hace una peticin de interrupcin, entonces, de forma automtica, el bit INTF del registro INTCON se pone a 1 y si el bit GIE=1, se pone en marcha el mecanismo de interrupcin.
. El programa de atencin a la interrupcin antes de regresar al programa principal debe borrar el flag INTF, puesto que en caso contrario al ejecutar la instruccin de retorno de interrupcin RETFIE se volver a desarrollar el mismo proceso de interrupcin.
Si no se carga de nuevo TMR0 cuando se desborda, ste sigue contando desde 00h hasta FFh. Este registro puede escribirse o leerse en cualquier momento, pero hay que tener en cuenta que al escribir sobre l, se pierden dos ciclos de reloj para la sincronizacin.
a)
Escritura de la direccin que hay que leer en el registro EEADR. b) Poner a 1 el bit RD del registro EECON1. c) Lectura del dato diseccionado de esta forma en el registro EEDATA. d) El dato est disponible en EEDATA despus de colocar RD a 1, por lo que es posible leerlo. El dato ledo estar disponible el registro EEDATA en el siguiente ciclo y permanecer en l hasta que se realice una nueva lectura o escritura en la EEPROM.
Cuando la escritura de un dato en la EEPROM finaliza, se coloca en 1 el bit EEIF (EECON1). El bit de control respectivo es EEIE (INTCON).
Ejemplo
int btfss intcon, intf ; goto puertab ; goto a
btfss intcon, rbif ; goto tmr0 goto a
Explora el bit intf del registro intcon y si vale 1 salta salta a puertab inicio del servicio de interrupcin por activacin RB0
Explora el bit rbif del registro intcon y si vale 1 salta inicio del servicio de interrupcin por cambio en los pines RB7 : RB4 Explora el bit toif y si vale 1 salta inicio del servicio de interrupciones por desbordamiento de TMR0
puertab
tmr0
eeprom
btfss eecon1, eeif; Explora el bit eeif del registro eecon1 y si vale 1 salta goto int ; vuelve al principio, pero debe haber algn flag activado. goto a inicio el servicio de interrupcin por fin de la escritura en la EEPROM
Registro OPTION
Gobernar el comportamiento del TMR0. Tiene un bit relacionado con interrupciones externas.
Si configuramos:
INTDEG