Вы находитесь на странице: 1из 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 - Seal reloj interno
C/T

Contador

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 - Seal reloj interno


C/T Interrupcin (si est habilitada)

Contador 000...010

1
I

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

Вам также может понравиться