Preview only show first 10 pages with watermark. For full document please download

6_systick

Descripción: manejo systik lpc1769

   EMBED


Share

Transcript

“Programación de Sistemas Embebidos con Microcontroladores de 32bits - LPC1769” SysTick  Mgter. Ing. Marcos Darío Aranda JTP  – Arquitectura de Computadores  – Departamento de Informática JTP  – Sistemas Microprogramables Microprogramables  – Departamento de Electrónica 2 Temario • SYSTICK ▫ ▫ ▫ Systick del uC LPC1769 Led del LPC1769 LED2 RED => Actividad Práctica 3  SysTick – 3 Interrupciones del sistema Las interrupciones del sistema son: PendSV: se genera por software y es parte del proceso de atención a una llamada al sistema operativo mediante una instrucción SVC, la prioridad se puede configurar pero no se puede inhabilitar. SysTick: generada por el timer del mismo nombre, la prioridad se puede configurar pero no se puede inhabilitar. • • 4 Systick del uC LPC1769 •  ARM Cortex-M3 system tick timer (SYSTICK) ▫ ▫ ▫ ▫ ▫ Es un temporizador  de 24 bits, cuenta en forma descendente o ascendente. Cuando su cuenta llega a cero genera una excepción el SysTick (puede programarse para generar excepciones periódicas a intervalos regulares de XmS)  Además una excepción de SysTick  puede generarse por programa En el ambiente de un Sistema Operativo (OS o RTOS) puede usarse ésta excepción como system tick Se puede usar además como un simple contador 5 Systick del uC LPC1769 6 Systick del uC LPC1769 • •  ARM proporciona una plantilla de archivo para system_device.c, la misma es adaptada por el proveedor de silicio para que coincida con su dispositivo real. Como requisito mínimo de este archivo, debe proporcionar una función de configuración del sistema de dispositivo específico y una variable global que contienga la frecuencia del sistema. Ello configura el dispositivo e inicializa el oscilador (PLL) que es parte del microcontrolador. 7 Systick del uC LPC1769 • • El archivo system_device.c debe ofrecer como requisito mínimo la función SystemInit (void) Esta función configura el oscilador (PLL). La función SystemCoreClockUpdate (void) actualiza la  variable SystemCoreClock   y debe ser llamado cada vez que se cambia el reloj durante la ejecución del programa. SystemCoreClockUpdate () evalúa la configuración de registro de reloj y calcula el reloj del núcleo actual. La variable SystemCoreClock   contiene el reloj del núcleo del sistema (que es la frecuencia de reloj del sistema suministrado al temporizador SysTick y el reloj de núcleo de procesador). Esta  variable puede ser utilizada por la aplicación del usuario para configurar el temporizador SysTick o configurar otros parámetros. También puede ser utilizado por el depurador para consultar la frecuencia del temporizador de depuración o configurar la velocidad de reloj. 8 Systick => Actividad Práctica • • Genere nuevo proyecto => Proyecto_Systick Realice los drivers del Systick los cuales contendrán las siguientes funciones: Una variable => que les permitirá realizar la cuenta.  void Configurar_Systick (void){ // SysTick  tiempo de interrupción a intervalos de 1 mS if (SysTick_Config (SystemCoreClock  / 1000)){  while (1); // Captura el error } }  void SysTick_Handler(void); Tipo delay_ms (Tipo_dato delay_time) ; 9 Systick => Actividad Práctica • Desarrollo un aplicación que permita cambiar el estado del LED2 cada un segundo, utilice el ORC para poder observar y verificar que la señal de salida se encuentra un segundo en alto y un segundo en  bajo.