Programación multitarea en microcontroladores avr de 8 bits.

20
PROGRAMACIÓN MULTITAREA (MULTITASKING) EN MICROCONTROLADORES AVR DE 8 BITS. HAZUR SOCCONINI ALVARADO UNIVERSIDAD AUTÓNOMA METROPOLITNA XOCHIMILCO 1/20

description

La programación multitarea permite atender dos o mas procesos de forma concurrente o simultánea. En esta charla se mostrará ejemplos sencillos de como implementar este tipo de códigos utilizando ANSI C en microcontroladores AVR de 8bits, así como buenas prácticas de programación para su implementación. La platica está dirigida a un público básico e intermedio que haya programado en lenguaje C y conozca los microcontroladores de 8bits.

Transcript of Programación multitarea en microcontroladores avr de 8 bits.

Page 1: Programación multitarea en microcontroladores avr de 8 bits.

PROGRAMACIÓN MULTITAREA (MULTITASKING) EN

MICROCONTROLADORES AVR DE 8 BITS.

HAZUR SOCCONINI ALVARADOUNIVERSIDAD AUTÓNOMA METROPOLITNA

XOCHIMILCO

1/20

Page 2: Programación multitarea en microcontroladores avr de 8 bits.

CONCEPTOS• THREAD: HILO, PROCESO INDIVIDUAL EJECUTANDOSE EN UN

PROGRAMA• UN PROGRAMA DE FLUJO ÚNICO O MONO-HILVANADO (SINGLE-

THREAD) UTILIZA UN ÚNICO FLUJO DE CONTROL (THREAD) PARA CONTROLAR SU EJECUCIÓN.

• TIEMPO COMPARTIDO COMPARTIR DE FORMA CONCURRENTE UN RECURSO COMPUTACIONAL (TIEMPO DE EJECUCIÓN EN LA CPU, USO DE LA MEMORIA, ETC.) ENTRE MUCHOS USUARIOS POR MEDIO DE LAS TECNOLOGÍAS DE MULTIPROGRAMACIÓN Y LA INCLUSIÓN DE INTERRUPCIONES DE RELOJ POR PARTE DEL SISTEMA.

2/20

Page 3: Programación multitarea en microcontroladores avr de 8 bits.

CONCEPTOS

• TIMER: TEMPORIZADOR• INTERRUPCIONES: COMPARTIR DE FORMA CONCURRENTE

UN RECURSO COMPUTACIONAL (TIEMPO DE EJECUCIÓN EN LA CPU, USO DE LA MEMORIA, ETC.) ENTRE MUCHOS USUARIOS POR MEDIO DE LAS TECNOLOGÍAS DE MULTIPROGRAMACIÓN Y LA INCLUSIÓN DE INTERRUPCIONES DE RELOJ POR PARTE DEL SISTEMA.

3/20

Page 4: Programación multitarea en microcontroladores avr de 8 bits.

PROGRAMAS DE FLUJO ÚNICO• UN PROGRAMA DE FLUJO ÚNICO O MONO-HILVANADO (SINGLE-

THREAD) UTILIZA UN ÚNICO FLUJO DE CONTROL (THREAD) PARA CONTROLAR SU EJECUCIÓN. MUCHOS PROGRAMAS NO NECESITAN LA POTENCIA O UTILIDAD DE MÚLTIPLES FLUJOS DE CONTROL.

• SIN NECESIDAD DE ESPECIFICAR EXPLÍCITAMENTE QUE SE QUIERE UN ÚNICO FLUJO DE CONTROL, MUCHOS DE LOS APPLETS Y APLICACIONES SON DE FLUJO ÚNICO.

4/20

Page 5: Programación multitarea en microcontroladores avr de 8 bits.

TIPOS DE PROCESAMIENTO

• EN SERIE O SECUENCIAL• POR LOTES• MULTIPROGRAMACIÓN

5/20

Page 6: Programación multitarea en microcontroladores avr de 8 bits.

¿QUÉ ES MULTITASKING?

6/20

Page 7: Programación multitarea en microcontroladores avr de 8 bits.

Fuente: Milan Milenkovic,Sistemas Operativos

7/20

Page 8: Programación multitarea en microcontroladores avr de 8 bits.

MICROCONTROLADOR

8/20

Page 9: Programación multitarea en microcontroladores avr de 8 bits.

9/20Interrupciones

Registros

Unidad de Control

Buses

Periféricos

Page 10: Programación multitarea en microcontroladores avr de 8 bits.

PROGRAMANDO CÓDIGO EFICIENTE EN ANSI C

10/20

COMPILADOR CARQUITECTURA AVRSET DE INSTRUCCIONES32 REGISTROS

PUNTEROS 24 BITS

Page 11: Programación multitarea en microcontroladores avr de 8 bits.

EFICIENCIA EN 8 BITS (ATMEGA16/32)• LOS PUNTEROS SIRVEN PARA ACCEDER A DATOS ALMACENADOS EN LA MEMORIA FLASH DE PROGRAMA (ESTOS DATOS SON SOLO DE LECTURA).

• MANEJANDO DATOS DE 16 BITS, SUMA Y RESTA INMEDIATA (ADIW, SBIW).

• OPERACIONES ARITMÉTICAS Y DE COMPARACIÓN CON VALORES DE 16 BITS (2 INSTRUCCIONES Y 2 CICLOS DE RELOJ).

• ANÁLOGO SE PUEDEN REALIZAR OPERACIONES ARITMÉTICAS Y DE COMPARACIÓN CON DATOS DE 32 BITS (4 INSTRUCCIONES Y 4 CICLOS DE RELOJ).

11/20

Page 12: Programación multitarea en microcontroladores avr de 8 bits.

12/20

Page 13: Programación multitarea en microcontroladores avr de 8 bits.

13/20

char *pointer1 = &table[0];

char *pointer2 = &table[49];

*pointer1++ = *- -pointer2;

LD R16,-Z ;predecrementa el puntero Z y carga datoST X+,R16 ;almacena dato y pos-incrementa

ANSI C

Lenguaje Ensamblador

VS2 ciclos de reloj e instrucciones de una sola palabra

Page 14: Programación multitarea en microcontroladores avr de 8 bits.

14/20

Page 15: Programación multitarea en microcontroladores avr de 8 bits.

15/20

Page 16: Programación multitarea en microcontroladores avr de 8 bits.

16/20

Page 17: Programación multitarea en microcontroladores avr de 8 bits.

17/20Sistema de Desarrollo basando en puerto JTAG con programador AVR DRAGON

Page 18: Programación multitarea en microcontroladores avr de 8 bits.

PRUEBA MULTITASTING ATMEGA 32

• TAREA 1. SIRENA• TAREA 2. LED

BASCULANTE• TAREA 3. DESTELLO

18/20

Page 19: Programación multitarea en microcontroladores avr de 8 bits.

19/20

y el código?

Page 20: Programación multitarea en microcontroladores avr de 8 bits.

20/20

@HAZUR_

HAZUR84

HAZUR SOCCONINI ALVARADO

GRACIAS!HAZUR84