Translate, Traductor

sábado, 30 de junio de 2012

Interrupciones en los Microcontroladores PIC

Interrupciones en los microcontroladores

Una interrupcion es un evento que hace que el micro deje lo que esta haciendo (ejecutando el programa
principal) y atienda el evento o interrupcion.

Vamos a suponer que ud esta en su trabajo(programa principal) y su jefe le hace una llamada(fuente de
interrupcion) y le pide que por favor se dirija a la sucursal de la zona sur a resolver un problema, ud
imediatamente detiene lo que esta haciendo y se dirige a la sucursal a solucionar el problema(rutina de
interrupcion), cuando termina vuelve a su oficina(programa principal).
mirando el ejemplo anterior la fuente de interrupcion es su jefe y la rutina de atencion es ir a la
sucursal y solucionar el problema.


Dependiendo del microcontrolador hay diferentes fuentes de interrupcion, veamos algunas de ellas:

- por cambio en los pines RB4, RB5, RB6 y RB7
- por desborde del TMR0
- por el modulo USART
- por la memoria EEPROM
- por cambio en el pin RB0  interrupcion externa
- por el comparador

entre otras fuentes de interrupcion.

Cuando ocurre una interrupcion el microcontrolador se dirige a la posicion de memoria 0X04H  tambien
llamada "VECTOR DE INTERRUPCION" y es este lugar que debemos colocar la rutina de atencion a la
interrupcion.

    org    00        ;Vector de reset
    goto    configura

    org    0x04        ;Vector de interrupcion
    ; es en este lugar que escribimos la rutina de atencion a la interrupcion
    goto    RUTINAdeINTERRUPCION    ;Nos envia a la rutina donde atenderemos la interrupcion


RUTINAdeINTERRUPCION
    ; Esto es lo que debe hacer segun la interrupcion que ocurra
    .
    .
    .
    .
    RETFIE            ;Retorna de Interrupcion


Notemos como en el ejemplo anterior cuando se termina la rutina escribimos RETFIE para salir de la
interrupcion y volver al lugar donde estaba antes de que la interrupcion se diera.

Como los microcontroladores tienen varias fuentes de interrupcion, pero un solo vector de interrupcion,
cuando estas se presenten, nosotros por programa debemos identificar el tipo de interrupcion, para esto
cada fuente de interrupcion tiene su propia bandera (Bit asociado a la fuente de interrupcion).


Copyright 2012  edwtron
       
Este DOCUMENTO es un DOCUMENTO LIBRE, usted puede redistribuirlo y/o modificarlo bajo los terminos de la GNU FDL tal y como es publicada por la fundacion de software libre; bajo la version 1.3 de la licencia, o  una version superior.
     Leer la licencia GNU gpl para mas detalles. 

    Permission is granted to copy, distribute and/or modify this document
    under the terms of the GNU Free Documentation License, Version 1.3
    or any later version published by the Free Software Foundation;
    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
    A copy of the license is included in the section entitled "GNU
    Free Documentation License".

No hay comentarios:

Publicar un comentario