100% encontró este documento útil (1 voto)
176 vistas24 páginas

Interrupciones ECCI

El documento describe las interrupciones en los sistemas embebidos STM32. Explica que las interrupciones son señales que hacen que el procesador deje de ejecutar el programa principal y ejecute código de interrupción. Luego detalla que el controlador de interrupciones NVIC maneja las interrupciones de manera eficiente. Finalmente, presenta ejemplos de código y registros relacionados con las interrupciones externas EXTI y el temporizador SYSTICK.

Cargado por

Juan Silva
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
176 vistas24 páginas

Interrupciones ECCI

El documento describe las interrupciones en los sistemas embebidos STM32. Explica que las interrupciones son señales que hacen que el procesador deje de ejecutar el programa principal y ejecute código de interrupción. Luego detalla que el controlador de interrupciones NVIC maneja las interrupciones de manera eficiente. Finalmente, presenta ejemplos de código y registros relacionados con las interrupciones externas EXTI y el temporizador SYSTICK.

Cargado por

Juan Silva
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 24

EXTI STM32F746ZGVT

SISTEMAS EMBEBIDOS

Ing. Germán Leandro Vargas Fonseca Esp


INTERRUPCIONES
 Señal o instrucción recibida por un procesador
para indicarle que debe interrumpir la
ejecución normal del programa, y debe pasar a
ejecutar el código especifico, y por ultimo
regresa al programa actual.

 El código se conoce como ISR (Interrupt Service


Routine).
INTERRUPCIONES-NVIC
INTERRUPCIONES-NVIC
 El NVIC es una parte integral de todos los procesadores Cortex-M y proporciona las capacidades de
procesamiento de interrupciones excepcionales de los procesadores.

 Las interrupciones son controladas por el controlador de interrupción de vector anidado (NVIC).

 El NVIC está diseñado para un manejo rápido y eficiente de las interrupciones

 En una Cortex-M llegará a la primera línea de código C, a su rutina de interrupción ISR después de 12
ciclos de reloj.

 Las instrucciones de varios ciclos pueden detenerse sin sobrecarga y luego reanudarse una vez que la
interrupción ha finalizado

 Configuración 16 Niveles de Prioridad para las Interrupciones

 NVIC_EnableIRQ(EXTIX_IRQn) Habilita en vector de interrupción

*RM0385 PÁG. 285


*PM0253 PÁG 184
INTERRUPCIONES-NVIC
INTERRUPCIONES-NVIC
INTERRUPCIONES
 16 EXTI (Interrupciones Externa) EXTI0 a EXTI15 - GPIO

*RM0385 PÁG. 292


INTERRUPCIONES
8 EXTI – EXTI16 a EXTI23, conectadas de la siguiente manera:

*RM0385 PÁG. 293


INTERRUPCIONES
REGISTROS -INTERRUPCIONES
 SYSCFG external interrupt configuration register 1
SYSCFG_EXTICR1
REGISTROS -INTERRUPCIONES
 SYSCFG external interrupt configuration register 2
SYSCFG_EXTICR2
REGISTROS -INTERRUPCIONES
SYSCFG external interrupt configuration register

 SYSCFG_EXTICR1 : EXTI0[0:3] – EXTI3[0:3]


 SYSCFG_EXTICR2 : EXTI4[0:3] – EXTI7[0:3]
 SYSCFG_EXTICR3 : EXTI8[0:3] – EXTI11[0:3]
 SYSCFG_EXTICR4 : EXTI12[0:3] – EXTI15[0:3]

*RM0385 PÁG. 214-216


REGISTROS -INTERRUPCIONES
 RCC APB2
peripheral clock enable register
(RCC_APB2ENR)

*RM0385 PÁG. 166


EXTI REGISTROS -INTERRUPCIONES
 Interrupt mask register (EXTI_IMR)

*RM0385 PÁG. 293


EXTI REGISTROS -INTERRUPCIONES
 Event mask register (EXTI_EMR)

*RM0385 PÁG. 293


EXTI REGISTROS -INTERRUPCIONES
 Rising trigger selection register (EXTI_RTSR)

*RM0385 PÁG. 294


EXTI REGISTROS -INTERRUPCIONES
 Falling trigger selection register (EXTI_FTSR)

*RM0385 PÁG. 294


EXTI REGISTROS -INTERRUPCIONES
 Pending register (EXTI_PR)

*RM0385 PÁG. 295


#include <stdio.h>
#include <STM32F7xx.h> EJEMPLO -INTERRUPCIONES
int main(void){
RCC->APB2ENR |=
RCC->AHB1ENR =
GPIOD->MODER=
GPIOD->OTYPER=
GPIOD->OSPEEDR=
GPIOD->PUPDR=

SYSCFG->EXTICR[0]=
EXTI->IMR =
EXTI->EMR =
EXTI->FTSR =
//EXTI->RTSR =
NVIC_EnableIRQ(EXTI0_IRQn); // Permite habilitar la interrupción vector
while(true){ }
}
EJEMPLO -INTERRUPCIONES
#include <stdio.h>
#include <STM32F7xx.h>

extern "C" {
void EXTI0_IRQHandler(void) {
//función de interrupción
EXTI->PR |= 0; //baja bandera
}
}

int main(void){
//configuración interrupción
//configuración GPIO
// while(true){}
}
}
SYSTICK

 Temporizador de 24 bits.
 Cuenta de forma descendente.
 Genera una interrupción cuando el registro interno
llega a cero desde el valor de recarga inicial

*RM0385 PÁG. 285


*PM0253 PÁG 212
EJEMPLO -SYSTICK
INTERRUPCIONES

*RM0385 PÁG. 285


INTERRUPCIONES

*RM0385 PÁG. 285

También podría gustarte