SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores.

Slides:



Advertisements
Presentaciones similares
Lenguaje C++.
Advertisements

Introducción al lenguaje C
DISEÑO DE TRANSFERENCIA ENTRE REGISTROS
MICROCONTROLADORES NOCIONES BÁSICAS.
Alumno: Roy R. Mercado Núñez
Prototipo de compilador didáctico del lenguaje LC99
Curso de JAVA. Iniciando con las Técnologias Java.
Computación PROGRAMACIÓN.
Fundamentos de la Programación Estructurada
Programación en C (Segunda Parte) DATSI, FI, UPM José M. Peña
Introducción al Lenguaje C (ANSI)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
3. INTRODUCCIÓN A LA PROGRAMACIÓN
Introducción a los MCU´s de Motorola
Unidad 3 Punteros.
Ingeniero Anyelo Quintero
Tipos de Datos Básicos 1.
Programación en C para electrónica
LENGUAJE “C” Programación.
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.
Semana 5 Subprogramas..
Características de “C” Y Esta conformado por un Ambiente Integrado. Y Es un Lenguaje de Nivel medio. Y Es un compilador. YContiene un conjunto de palabras.
PRINCIPIOS DE PROGRAMACION ESTRUCTURADA
Índice. Revisando conceptos acerca de la memoria.
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 13.
TIMER 1 El módulo TIMER1 así como el TIMER0 es un temporizador/contador con las siguientes características. Trabaja con 16 bits (con 2 registros de 8 bits:TMR1H.
Tipo de Datos Básicos.
© AutoresV1.1 Informática Ingeniería en Electrónica y Automática Industrial Datos en lenguaje C.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
INTRODUCCION. LOS LENGUAJES DE PROGRAMACIÓN Los lenguajes de programación herramientas que nos permiten crear programas y software. EL LENGUAJE DE MAQUINA.
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Fundamentos de Programación Resolución de Problemas con Computadoras y Herramientas de Programación.
José Estay A Elementos de Estructura de computadores.
Resumen Fundamentos de Programación/ Programación I
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
MICROCONTROLADORES NOCIONES BÁSICAS COMPUTO II. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
Lenguaje Ensamblador Pic 16F84A.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 13/05/2006.

Nombre: Cristian Achina Curso: 4to «A» Fecha:
Programación Básica con “NQC” Pedro F. Toledo Universidad Técnica Federico Santa María Departamento de Electrónica.
 En computación es un conjunto de líneas de señal que el microprocesador o CPU utilizan para intercambiar datos con otros componentes como teclados,
Asignatura: Computadores Profesor: José Estay Araya Sitio de la asignatura: User: cpu2014 psw: cpu#X86.
Programación Básica con “NQC” Pedro F. Toledo – Patricio Castillo 15/08/2006.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Ing. Lionel Hendryk. Sistemas Embebidos Un sistema embebido es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas.
NOCIONES BÁSICAS COMPUTO II

1 Unidad II: La Computadora Personal. Tema: La Computadora Personal. Objetivos: Que el alumno conozca los elementos básicos que conforman un computador.
Principio unidad 1.
CORPOCIDES Ing. Emilio Medina Baquero
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
1.  En el Lenguaje C, los nombres usados para referirse a las variables, las constantes, las funciones y otros objetos definidos por el usuario se conocen.
INTRODUCCIÒN MICROCONTROLADORES
Fundamentos de Programación
Javier Mauricio Galvis Moreno
CONJUNTO DE INSTRUCCIONES Maquinas Digitales
EL TIPO DE DATO LOGICO y constantes.
Funciones Copyright © 2005 Unidad 1. Copyright © 2005 Objetivos del Aprendizaje Explicar la naturaleza y usos de las funciones. Describir algunas funciones.
Informática Ingeniería en Electrónica y Automática Industrial
Curso: Fundamentos de Computación
U2 Tipos de datos, referenciación y errores 1. Datos problema simple enteroreal carácter booleano Ingeniero = Oreja+catalejo modelo ordenador solución.
Introducción al Lenguaje C y al Visual C++. Lenguaje C El lenguaje C se conoce como un lenguaje compilado. Es un lenguaje estructurado, ya que permite.
Parte I Pines de E/S Interrupciones
Transcripción de la presentación:

SISTEMAS ELECTRÓNICOS 3ºGIERM1 1. Introducción 2. Tipos de datos 3. Estructuras típicas de programación 4. Manejo de bits Tema 7. Programación de microcontroladores en C

Tradicionalmente, los MC se programaban en ensamblador – Código más específico ->optimizado – Más complejo de entender. – No transportable Lenguaje C: – Estructuras de programación más flexibles – Posibilidad de acceder a recursos en bajo nivel – Necesidad de adaptar los usos. Introducción SISTEMAS ELECTRÓNICOS 3ºGIERM2

Limitación de memoria de programa Gran limitación de memoria de datos Aritméticas de punto fijo y baja resolución No incorporan (nativas) instrucciones aritméticas complejas (multiplicación, división…) Necesidad de configuración de periféricos internos (acceso a registros) Específico de los Microcontroladores SISTEMAS ELECTRÓNICOS 3ºGIERM3

Evitar el uso de datos grandes – char mejor que int – int mejor que long – Evitar float Mejor usar constantes que variables – Más memoria de programa que de datos Mejor usar define que constantes – Direccionamiento directo Tipos de datos SISTEMAS ELECTRÓNICOS 3ºGIERM4

Variables locales: se usan sólo en la función. – No conservan el valor. – Normalmente, en la pila o registro interno Variables Globales: definidas fuera. – Intercambio de datos entre funciones – Posiciones fijas de memoria o registros Variables volatile: – Informar al compilador que pueden cambiar en una rutina de interrupción: posiciones fijas de memoria Modificador extern: – Variable definida en otro fichero Variables locales, globales y volátiles SISTEMAS ELECTRÓNICOS 3ºGIERM5

Resumen SISTEMAS ELECTRÓNICOS 3ºGIERM6 #define I_MAX 124//RAM:0 char A//RAM:1byte (0..255) unsigned int i;//RAM:2byte (0..64k) int corriente;//RAM:2byte (-32k..32k) long potencia;//RAM:4byte (0..4G) const char frase[]=“Tecla”; //RAM:0, FLASH:6bytes extern int semaf;//definida en otro fichero volatile char estado;// no optimizable

Programación orientada a bajo consumo: – MC apagado en reposo. – Minimizar tiempo encendido – Interrupciones de temporización / externas Bloque inicial de valores iniciales Estructura cíclica – Leer entradas – Cambiar estado/ calcular actuación – actuar sobre las salidas – volver al principio Estructuras de programación SISTEMAS ELECTRÓNICOS 3ºGIERM7

todo en el main() inicialización bucle while(1) No bajo consumo Estructura básica SISTEMAS ELECTRÓNICOS 3ºGIERM8 int main(void) { Grace_init(); //activar driver P2OUT&=~BIT0; P2OUT&=~BIT1; P2OUT|=BIT2; while(1) { if(!(P1IN&BIT2)){ P2OUT|=BIT3; P2OUT|=BIT1; }else { P2OUT&=~BIT3; P2OUT&=~BIT1; } return (0); }

Inicialización y paso a modo sleep Esperar a las interrupciones – Timer – Pines de E/S – Puertos de comunicaciones El código puede ir – En la interrupción (ojo con las prioridades) – En el main (variables semáforo) Programa basado en interrupciones SISTEMAS ELECTRÓNICOS 3ºGIERM9

Programa basado en una interrupción de timer Frecuencia de timer adaptada al proceso Mejor, código en la propia interrupción Programa en tiempo real SISTEMAS ELECTRÓNICOS 3ºGIERM10

Uso de la estructura switch/case En cada estado, calcular el siguiente y cambiar las salidas Puede ser continuo (asíncrono) o periódico (síncrono) Máquina de estado SISTEMAS ELECTRÓNICOS 3ºGIERM11 switch(estado) { case 1: if(Var1>LIM) estado=2; if(pin1==0) estado=3; P1OUT|=BIT2; break; case 2: … break; … }

Con frecuencia, quiero cambiar un bit de un registro – Poner a ‘1’ un pin de salida. – Leer si un pin de entrada es ‘1’ Uso de las funciones lógicas bit a bit: &, |, ^, ~ AND: hace el AND bit a bit entre dos cantidades –Pepe=Pepe& 0xF7; – Sirve para apagar bits en un registro OR: –Pepe=Pepe | 0x08; – Sirve para encender bits Manejo de bits SISTEMAS ELECTRÓNICOS 3ºGIERM12

Se definen máscaras para cada bit: Para encender/apagar un bit: –Registro1|=BIT5; –Registro1&=~BIT5 ; Para comprobar si un bit es 1/0: –if(Reg1&BIT5)… –if(!(Reg1&BIT5))… se pueden usar varios a la vez: –Registro1|=(BIT0+BIT3+BIT5); Manejo de bits. Máscaras SISTEMAS ELECTRÓNICOS 3ºGIERM13 #define BIT0 0x01 #define BIT1 0x02 #define BIT2 0x04 #define BIT3 0x08 #define BIT4 0x10 #define BIT5 0x20 #define BIT6 0x40 #define BIT7 0x80 #define BIT8 0x100 #define BIT9 0x200 …