Interrupciones externas
1
Pulsantes Uso de Pul Pulsan sante tess
Rebotes
1. Solución por hardw hardware are
2. Solución por softw software are Por retardos retardos
R=10K 0.01uF
Pulsantes Uso de Pul Pulsan sante tess
Rebotes
1. Solución por hardw hardware are
2. Solución por softw software are Por retardos retardos
R=10K 0.01uF
2
Pulsantes
Pulsantes
3
Interrupciones ¿Qué es una una interru interrupción? pción? •
•
•
Es el desvío de la ejecución normal de un programa, a peti petici ción ón de un perif erifér éric ico o. El origen de la petición es un evento externo en el periférico y, por tanto, asíncrono al programa. Si el microcontrolador microcontrolador la acepta, ejecuta una subrutina s ubrutina para atender atender al periférico periférico..
La importan importancia cia de las interrup interrupciones ciones en el con contro troll •
•
El control se simplifica, ya que se atiende a los periféricos cuando éstos lo requieren, y no es necesario hacer polling polling.. En ocasiones, un programa de control está formado por un bucle de espera, en el que no se hace nada, y sólo se
Interrupciones ¿Qué es una una interru interrupción? pción? •
•
•
Es el desvío de la ejecución normal de un programa, a peti petici ción ón de un perif erifér éric ico o. El origen de la petición es un evento externo en el periférico y, por tanto, asíncrono al programa. Si el microcontrolador microcontrolador la acepta, ejecuta una subrutina s ubrutina para atender atender al periférico periférico..
La importan importancia cia de las interrup interrupciones ciones en el con contro troll •
•
El control se simplifica, ya que se atiende a los periféricos cuando éstos lo requieren, y no es necesario hacer polling polling.. En ocasiones, un programa de control está formado por un bucle de espera, en el que no se hace nada, y sólo se atie at iend nden en las in inte terr rrup upci cion ones es qu que e ll lleg egan an.. 4
Interrupciones ¿Qué factores factores se deben consi consider derar? ar? •
¿Cómo interr interrump umpe e el perif periférico érico? ?
Petición
•
¿Puede ¿Pued e el micro micro atender atenderle, le, o no?
Aceptación
•
¿Y si interr interrump umpen en dos o más a la ve vez? z?
Prioridad Prio ridad y nive niveles les
•
¿Cómo sabe sabe el micro quién quién le int interrum errumpe? pe? Identificación
•
¿A dónde dónde salta el progr programa ama del micr micro? o?
Servicio de int interrup errupción ción
Interrupciones ¿Qué factores factores se deben consi consider derar? ar? •
¿Cómo interr interrump umpe e el perif periférico érico? ?
Petición
•
¿Puede ¿Pued e el micro micro atender atenderle, le, o no?
Aceptación
•
¿Y si interr interrump umpen en dos o más a la ve vez? z?
Prioridad Prio ridad y nive niveles les
•
¿Cómo sabe sabe el micro quién quién le int interrum errumpe? pe? Identificación
•
¿A dónde dónde salta el progr programa ama del micr micro? o?
Servicio de int interrup errupción ción
5
Interrupiones ¿Qué se hace al producirs producirse e una int interrup errupción? ción? •
Termina erminarr la instrucción instrucción que estaba pendient pendiente. e.
•
Guardar el conten contenido ido del cont contador ador de progr programa ama en el e l stack.
•
•
•
Guardar el contenido del resto de registros. Esto puede ser automático, o tal vez haya que hacerlo en la rutina de servicio. Hacer el acknowledge de la interrupción, si éste es por software softw are (borrar bandera de int interrupci errupción). ón). Habilitar o deshabilitar interrupciones del mismo nivel, para permitir/evitar interrupciones reentrantes. Esto puede ser
Interrupiones ¿Qué se hace al producirs producirse e una int interrup errupción? ción? •
Termina erminarr la instrucción instrucción que estaba pendient pendiente. e.
•
Guardar el conten contenido ido del cont contador ador de progr programa ama en el e l stack.
•
•
•
Guardar el contenido del resto de registros. Esto puede ser automático, o tal vez haya que hacerlo en la rutina de servicio. Hacer el acknowledge de la interrupción, si éste es por software softw are (borrar bandera de int interrupci errupción). ón). Habilitar o deshabilitar interrupciones del mismo nivel, para permitir/evitar interrupciones reentrantes. Esto puede ser automá aut omático tico o manu manual. al. 6
Interrupciones ¿Qué se hace al retorna retornarr de una int interrup errupción? ción?
•
•
•
Recuperar el contenido stack(aut st ack(automátic omático o o manual)
de
los
registros
del
Volver a habilitar habilitar interrupciones interrupciones (automático (automático o manual) Recuperar el valor del PC desde el stacky volver al programa principal
Interrupciones ¿Qué se hace al retorna retornarr de una int interrup errupción? ción?
•
•
•
Recuperar el contenido stack(aut st ack(automátic omático o o manual)
de
los
registros
del
Volver a habilitar habilitar interrupciones interrupciones (automático (automático o manual) Recuperar el valor del PC desde el stacky volver al programa principal
7
Interrupciones
Interrupciones
8
Interrupciones
Interrupciones
9
Interrupciones
Interrupciones
10
Int nterru errupc pcio iones nes ATM ATME EGA16 A164 4P
Int nterru errupc pcio iones nes ATM ATME EGA16 A164 4P
11
Int nterru errupc pcio iones nes ATM ATME EGA16 A164 4P
Int nterru errupc pcio iones nes ATM ATME EGA16 A164 4P
12
Interrupiones ATMEGA164P
Interrupiones ATMEGA164P
13
Interrupiones Externas Interrup Int errupciones ciones Externas Externas INT0-INT2 (Pg. 86 DSA) EICRA – External Interrup Interruptt Contro Controll Regist Register er A
Interrupiones Externas Interrup Int errupciones ciones Externas Externas INT0-INT2 (Pg. 86 DSA) EICRA – External Interrup Interruptt Contro Controll Regist Register er A
14
Interrup nterrupcio ciones nes Externa xternas s EIMSK – External Interrupt Interrupt Mask Regis Register ter
Bits 0-2 INT0-2: Interrupc Interrupción ión externa externa habi habilitad litada. a. Cuando el bit INT0-2 está en 1L la correspondiente interrupción externa está activada. Caso contrario contrario esta deshabilitada. EIFR –External Interrupt Interrupt Flag Regist Register er
Bits 0:2 – INTF0-2: Banderas interrupción ext externa erna de 2 - 0 Cuando Cuan do un pulso o lógica cambi cambio o en INT0-2 desencaden desencadena a una solicitud de interrupción. La bandera se borra cuando la rutina de
Interrup nterrupcio ciones nes Externa xternas s EIMSK – External Interrupt Interrupt Mask Regis Register ter
Bits 0-2 INT0-2: Interrupc Interrupción ión externa externa habi habilitad litada. a. Cuando el bit INT0-2 está en 1L la correspondiente interrupción externa está activada. Caso contrario contrario esta deshabilitada. EIFR –External Interrupt Interrupt Flag Regist Register er
Bits 0:2 – INTF0-2: Banderas interrupción ext externa erna de 2 - 0 Cuando Cuan do un pulso o lógica cambi cambio o en INT0-2 desencaden desencadena a una solicitud de interrupción. La bandera se borra cuando la rutina de interrup int errupción ción se ejecut ejecuta a. 15
Interrup nterrupcio ciones nes Externa xternas s PCICR – Pin Change Interrupt Control Control Register Register
PCIFR – Pin Change Interrupt Interrupt Flag Register Register
Interrup nterrupcio ciones nes Externa xternas s PCICR – Pin Change Interrupt Control Control Register Register
PCIFR – Pin Change Interrupt Interrupt Flag Register Register
16
Interrup nterrupcio ciones nes Externa xternas s
Interrup nterrupcio ciones nes Externa xternas s
17
Interrupiones Externas Ejemplo: Contador de 0 a 9 con interru interrupción pción externa
Interrupiones Externas Ejemplo: Contador de 0 a 9 con interru interrupción pción externa
18
RELOJ DEL SISTEMA Y OPCIONES DE RELOJ HENRY CALDERON ÁNGEL ALCÓCER
RELOJ DEL SISTEMA Y OPCIONES DE RELOJ HENRY CALDERON ÁNGEL ALCÓCER
SISTEMAS DE RELOJ Y SU DISTRIBUCIÓN
OSCILADOR DE CRISTAL DE BAJA POTENCIA Este oscilador Este oscilador de de cristal cristal es un un oscilador oscilador de de baja potencia,, con potencia con una una oscilación oscilación de de voltaje voltaje reducida reducida en en la la salida XTAL salida XTAL2 2. Da el el consumo consumo de de energía más más bajo, bajo, pero no pero no es es capaz capaz de de controlar controlar otras otras entradas entradas de de reloj reloj,, y puede ser más más susceptible susceptible al al ruido ruido en en ambientes ambientes ruidosos.. En ruidosos En estos estos casos casos,, consulte consulte Full Full Swing Swing Crystal Crystal Oscillator •
SISTEMAS DE RELOJ Y SU DISTRIBUCIÓN
OSCILADOR DE CRISTAL DE BAJA POTENCIA Este oscilador Este oscilador de de cristal cristal es un un oscilador oscilador de de baja potencia,, con potencia con una una oscilación oscilación de de voltaje voltaje reducida reducida en en la la salida XTAL salida XTAL2 2. Da el el consumo consumo de de energía más más bajo, bajo, pero no pero no es es capaz capaz de de controlar controlar otras otras entradas entradas de de reloj reloj,, y puede ser más más susceptible susceptible al al ruido ruido en en ambientes ambientes ruidosos.. En ruidosos En estos estos casos casos,, consulte consulte Full Full Swing Swing Crystal Crystal Oscillator.. Oscillator •
El cristal debe El cristal debe estar estar conectado conectado como como se se describe describe en en Conexiones de Conexiones de origen origen de de reloj reloj.. •
El oscilador de El oscilador de baja baja potencia potencia puede puede operar operar en en tres tres modos diferentes, diferentes, cada uno optimizado para una frecuencia frecu encia espec específica ífica.. El mo modo do de op opeera racció ión n se selecciona con los los fusibles fusibles CKSEL [ 3: 1], ], como se muestra en muestra en la la siguiente siguiente tabla tabla:: •
OSCILADOR RC INTERNO CALIBRADO Por defecto to,, el Oscilador RC int nteern rnoo proporciona un reloj de 8.0MHz. Aunq nque ue dependerá del voltaje y la te tem mperatura, este re relloj puede ser calibrado con mu much cha a precisión por el usuario. El disp di spos osit itiv ivoo se co conf nfig igur ura a co conn el CK CKDI DIV8 V8 Fus Fusib ible le pr prog ogra rama mado do.. Este reloj puede ser seleccionarse como el reloj del sistema programando los Fusibles CKSEL como se muestra en siguiente Tabla. Si se selecciona, funcionará sin componentes extern rnoos. Durante el reinicio, el hardware carga el valor de calibración preprogramado en el Reg egis istr troo OS OSCC CCAL AL y po porr lo ta tant ntoo ca calilibr bra a au auto tomá máti tica came ment ntee el RC Os Osci cila lado dorr.