programación multitarea en microcontroladores avr de 8 bits
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
![Page 1: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/1.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/2.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/3.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/4.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/5.jpg)
TIPOS DE PROCESAMIENTO
• EN SERIE O SECUENCIAL• POR LOTES• MULTIPROGRAMACIÓN
5/20
![Page 6: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/6.jpg)
¿QUÉ ES MULTITASKING?
6/20
![Page 7: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/7.jpg)
Fuente: Milan Milenkovic,Sistemas Operativos
7/20
![Page 8: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/8.jpg)
MICROCONTROLADOR
8/20
![Page 9: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/9.jpg)
9/20Interrupciones
Registros
Unidad de Control
Buses
Periféricos
![Page 10: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/10.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/11.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/12.jpg)
12/20
![Page 13: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/13.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/14.jpg)
14/20
![Page 15: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/15.jpg)
15/20
![Page 16: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/16.jpg)
16/20
![Page 17: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/17.jpg)
17/20Sistema de Desarrollo basando en puerto JTAG con programador AVR DRAGON
![Page 18: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/18.jpg)
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](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/19.jpg)
19/20
y el código?
![Page 20: Programación multitarea en microcontroladores avr de 8 bits](https://reader031.vdocuments.site/reader031/viewer/2022012306/557bc680d8b42a700d8b491e/html5/thumbnails/20.jpg)
20/20
@HAZUR_
HAZUR84
HAZUR SOCCONINI ALVARADO
GRACIAS!HAZUR84