PROGRAMACIÓN MULTITAREA
(MULTITASKING) EN MICROCONTROLADORES
AVR DE 8 BITS.
HAZUR SOCCONINI ALVARADO
UNIVERSIDAD AUTÓNOMA METROPOLITNA XOCHIMILCO
1/20
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
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
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
TIPOS DE PROCESAMIENTO
• EN SERIE O SECUENCIAL
• POR LOTES
• MULTIPROGRAMACIÓN
5
5/20
¿QUÉ ES
MULTITASKING?
6/20
Fuente: Milan Milenkovic,
Sistemas Operativos
7/20
MICROCONTROLADOR
8/20
9/20
Interrupciones
Registros
Unidad de
Control
Buses
Periféricos
PROGRAMANDO CÓDIGO EFICIENTE EN ANSI C
10
10/20
COMPILADOR CARQUITECTURA AVR
SET DE INSTRUCCIONES
32 REGISTROS
PUNTEROS 24 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
11/20
12
12/20
13
13/20
char *pointer1 = &table[0];
char *pointer2 = &table[49];
*pointer1++ = *- -pointer2;
LD R16,-Z ;predecrementa el puntero Z y carga dato
ST X+,R16 ;almacena dato y pos-incrementa
ANSI C
Lenguaje Ensamblador
VS
2 ciclos de reloj e
instrucciones de una
sola palabra
14
14/20
15
15/20
16
16/20
17
17/20
Sistema de Desarrollo basando en puerto JTAG con programador AVR DRAG
PRUEBA MULTITASTING ATMEGA 32
• TAREA 1. SIRENA
• TAREA 2. LED BASCULANTE
• TAREA 3. DESTELLO
18/20
19
19/20
y el código?
20/20
@HAZUR_
HAZUR84
HAZUR SOCCONINI
ALVARADO
GRACIAS!
HAZUR84

Programación multitarea en microcontroladores avr de 8 bits.

  • 1.
    PROGRAMACIÓN MULTITAREA (MULTITASKING) ENMICROCONTROLADORES AVR DE 8 BITS. HAZUR SOCCONINI ALVARADO UNIVERSIDAD AUTÓNOMA METROPOLITNA XOCHIMILCO 1/20
  • 2.
    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
  • 3.
    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
  • 4.
    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
  • 5.
    TIPOS DE PROCESAMIENTO •EN SERIE O SECUENCIAL • POR LOTES • MULTIPROGRAMACIÓN 5 5/20
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
    PROGRAMANDO CÓDIGO EFICIENTEEN ANSI C 10 10/20 COMPILADOR CARQUITECTURA AVR SET DE INSTRUCCIONES 32 REGISTROS PUNTEROS 24 BITS
  • 11.
    EFICIENCIA EN 8BITS (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 11/20
  • 12.
  • 13.
    13 13/20 char *pointer1 =&table[0]; char *pointer2 = &table[49]; *pointer1++ = *- -pointer2; LD R16,-Z ;predecrementa el puntero Z y carga dato ST X+,R16 ;almacena dato y pos-incrementa ANSI C Lenguaje Ensamblador VS 2 ciclos de reloj e instrucciones de una sola palabra
  • 14.
  • 15.
  • 16.
  • 17.
    17 17/20 Sistema de Desarrollobasando en puerto JTAG con programador AVR DRAG
  • 18.
    PRUEBA MULTITASTING ATMEGA32 • TAREA 1. SIRENA • TAREA 2. LED BASCULANTE • TAREA 3. DESTELLO 18/20
  • 19.
  • 20.