Está en la página 1de 13

Temporizacin en

los microcontroladores St STM32

2012/07/07
armcortexm.blogs.upv.es

Contenido

Objetivos

Introduccin

Caractersticas bsicas

Diagrama de bloques

Interrupciones asociadas a los timers

Uso del timer del sistema: SysTick

Ejercicios

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Objetivos

Conocer y comprender la utilidad de los temporizadores.


Sintetizar programas que hagan uso del sistema de
temporizadores.
Sintetizar manejadores de interrupcin para los
temporizadores.

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Introduccin

Realizar retardos de precisin o tareas peridicas

Semforos, pasos a nivel, ...


Generacin de seales como ondas cuadradas, control de
potencia

Medir frecuencias/periodos de seales digitales

Sensores.

Receptores de seales infrarrojas, radio ...

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Introduccin

Problemas al resolverlo por software.

Hay que saber cunto tardan en ejecutarse las instrucciones.

No se puede trabajar con frecuencias altas.

Si hay interrupciones es imposible lograr precisin.

La CPU desperdicia su tiempo y no puede hacer otras cosas.

Solucin: Emplear temporizadores

Los microcontroladores ARM Cortex M integran temporizadores

No necesitan circuitos adicionales (integracin).


Sin sobrecargar a la CPU (funcionamiento en paralelo con la
CPU).
ARM Cortex-M4: 1 timer de sistema de 24 bits + 14 timers
adicionales

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Caractersticas bsicas

Registro de cuenta (24 bits / 32 bits)

Cuenta tiempo: TEMPORIZADOR

Cuenta eventos: CONTADOR

Contabilizacin ascendente (cuenta = cuenta+1).

Contabilizacin Descendente (cuenta = cuenta-1).

El desborde se usa para detectar el fin de


cuenta/temporizacin.
Dispone de hardware/software para arrancar y parar la cuenta.

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Caractersticas bsicas

Diagrama de bloques:

Generacin:
- Eventos externos

Contador

- Seal reloj interno


C/T

Control
de puerta

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Interrupciones asociadas a los timers

Permite sacar mayor partido al sistema.

Liberan a la CPU de tener que encuestar flag de desborde.


Interrupcin

Generacin:
- Eventos externos

Contador
000...010

1
I

- Seal reloj interno


C/T

Interrupcin
(si est habilitada)

Control
de puerta
Temporizacin - Familia St STM32F
armcortexm.blogs.upv.es

Uso timer del sistema: SysTick

Configurar el temporizador:

SysTick_Config()

Funcin CMSIS que configura:

El registro de recarga del SysTick con el valor pasado


como parmetro
Configura la prioridad de la interrupcin del SysTick al
valor ms bajo (IRQ priority).
Configura la fuente de reloj para el contador del SysTick
a HCLK - Core Clock Source.
Habilita la interrupcin del timer.
Inicia el contador.

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

Uso timer del sistema: SysTick

Configurar el temporizador:

Se puede cambiar la prioridad del timer:

NVIC_SetPriority(SysTick_IRQn,...) despus de invocar


la funcin SysTick_Config()
NVIC_SetPriority() est definida en el fichero core_cm4.h

Para ajustar el tiempo base del SysTick se utiliza la siguiente


frmula:

Reload Value = SysTick Counter Clock (Hz) x Desired


Time base (s)

Reload Value es el parmetro que le pasamos a la funcin


SysTick_Config()
No debe exceder 0xFFFFFF

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

10

Uso timer del sistema: SysTick

Implementar el manejador de la interrupcin del timer:


void SysTick_Handler(void)
{
// aqu el cdigo de la rutina de servicio del timer
}

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

11

Ejercicios

Se desea disponer de una funcin en lenguaje C para realizar


retardos de precisin del orden de milisegundos. Reloj del C
de 168 Mhz.
AYUDA:

Prototipo funcin: void delay_ms(uint32_t ms);


Calcular ciclos de mquina a esperar y usar el timer del sistema
para contabilizarlos
Emplear mecanismo de desborde para realizar temporizaciones
grandes
Manual de la STM32F4 DSP
and standard peripherals library

http://armcortexm.blogs.upv.es/material-del-curso/
Temporizacin - Familia St STM32F
armcortexm.blogs.upv.es

12

Ejercicios

Generacin onda cuadrada de 100 Hz por el pin PD15.

Reloj del C de 168 Mhz

Se trata de un ejemplo tpico de tarea peridica.

Interesa tener desocupada la CPU para otros menesteres.

Temporizacin - Familia St STM32F


armcortexm.blogs.upv.es

13

También podría gustarte