Está en la página 1de 18

Laboratorio de

Sistemas
Embebidos
PRÁCTICA 6
• Configurar registros para
interrupciones
OBJETIVOS • Analizar las diferencias de la
programación sin interrupciones y
con interrupciones
INTRODUCCIÓN
ATMEGA328P

INT0 >> PD2


INT1 >> PD3
REGISTRO
EICRA

(External Interrupt Control


Register A).
REGISTRO
EIMSK
(EXTERNAL
INTERRUPT MASK
REGISTER).
PROCEDIMIENTO

INTERRUP
CIONES HTTPS://
GITHUB.C
EXTERNA
Realizar las conexiones
mostradas y reemplazar el OM/
S
código sininterrupt.c en el
main.cpp de VSC
SISTEMAS
Cargar el código y observar el EMBEBID
comportamiento de los leds OS2020/
mientras se mantiene
presionado el botón y al
Si no se observa ningún cambio despuesPRACTICA
de presionar y

soltarlo
soltar el botón ó
6
al mantener presionado el botón, realizar la conexión externa
pullup del botón.
PROCEDIMIENTO

INTERRUP
CIONES
EXTERNA
Realizar las conexiones
mostradas y reemplazar el

S
código interrupExternaArduino.c
en el main.cpp de VSC
Cargar el código y observar el
comportamiento de los leds
mientras se mantiene
presionado el botón y al HTTPS://GITHUB.COM/
soltarlo
SISTEMASEMBEBIDOS2020
/PRACTICA6
REGISTRO
TIMSK • TOIE0 (Timer/Counter 0 Overflow Interrupt Enable): Habilita la
interrupción por desbordamiento del Temporizador/Contador 0
• OCIE0x (Timer/Counter 0 Output Compare Match x Interrupt
Enable): Habilita la interrupción por una coincidencia en la
comparación.
⚬ Se tienen dos habilitaciones por que el temporizador es
comparado con dos registros diferentes: OCR0A y OCR0B.
REGISTRO
TCNT0
TCNT0 (Timer/Counter 0), es el registro
de 8 bits del temporizador/ contador 0
REGISTRO
TCCR0B
REGISTRO
TCCR1B
REGISTRO
TCCR2B
PROCEDIMIENTO
INTERRUP
CIONES
INTERNAS
Realizar las conexiones
mostradas y reemplazar el
código interrupinternaArduino.c
en el main.cpp de VSC
Cargar el código y observar el
comportamiento de los leds
cuando mantenemos
presionado el botón y
cuando no lo presionamos. HTTPS://GITHUB.COM/
SISTEMASEMBEBIDOS2020
Interrupciones
periféricas

REGISTRO
ADCSRA
Interrupciones
periféricas

REGISTRO
ADCSRB
Interrupciones
periféricas
Realizar las conexiones
mostradas y reemplazar el
código interruptADC.c
en el main.cpp de VSC
Cargar el código y girar el
potenciómetro, podremos
observar el valor del voltaje
en manera binaria conectada
a los leds
Interrupciones
periféricas
En el código comentar
ADCSRB= 0b100;
y descomentar
//ADCSRB= 0b10;
Volver a cargar el código y
girar el potenciómetro, podrán
notar que no hay cambios, al
menos que presionen y
suelten el botón
• Programar el atmega328P para que
mediante un segundo botón cambie
el modo automático del lector ADC,
DESAFÍO es decir que si se presiona una vez el
segundo botón el ADC se activará
mediante el primer botón, pero si se
vuelve a presionar el segundo botón,
el ADC se ejecutará cada 250 ms
(desborde TMR0). Esto quiere deci el
segundo botón actúa como selector
de modo.
• Adjuntar 1 foto de cada ejercicio realizado.
(Recuerde que todas las fotos, debe tener

REPORTE con su cédula o carnet alado del circuito).


• Comentar cada una de las fotos
• Conclusiones
• Recomendaciones

También podría gustarte