INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica.

Slides:



Advertisements
Presentaciones similares
MICROCONTROLADORES NOCIONES BÁSICAS.
Advertisements

10. Enumeraciones y Propiedades. Es un tipo de estructura en la que los literales de los valores que pueden tomar sus objetos se indican explícitamente.
Programación en C para electrónica
Programación en C para electrónica
MICROCONTROLADORES PIC
Arquitecturas de Computadoras Capítulo I. Abstracciones
Temas Operaciones básicas Instalando el compilador
Modelo de procesos de dos estados
Concepto de programa. Directorio Concepto de programa. Analisis del problema. Resolucion del problema. Desarroollo de un programa. Partes constitutivas.
Programación en Lenguaje Ensamblador.
UTFSM - Sistemas Operativos
Sistemas Digitales Curso 2007/2008 Departamento de Tecnología E l e c t r ó n i c a Periféricos E/S. VIA 65C22 Sistemas Digitales 2º curso Ingeniero Técnico.
Ocurre con frecuencia, tanto en programación como en la vida real, que las decisiones que se nos pide tomar son más complicadas que una simple selección.
Entrada / salida digital con ccs
Funciones en lenguaje C
El lenguaje de programación C - Funciones -
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Igor Santos Grueiro. Ahora tenemos datos y datos …
Archivos. fopen(...) Para comenzar a utilizar un archivo primero se debe abrir, invocando a la función fopen(...) FILE * fopen(char* nombre_arch, char*
Signal, kill, sigaction y máscara de señales
Lenguaje C.
LENGUAJE “C” Programación.
Microcontroladores PIC16F84A.
Introducción a la Ingeniería en Sistemas
Semana 5 Subprogramas..
1 LENGUAJES LOGICOS IMPLEMENTACION CALCULO DE PREDICADOS PROLOG.
Unidad 7 Entrada/Salida
Estructura de un programa en C
Índice. Revisando conceptos acerca de la memoria.
Informática Ingeniería en Electrónica y Automática Industrial
José Estay A / jea I semestre académico 2014 Computadores (TU Sistemas Computacionales) Elementos de estructura de computadores.
INTERRUPCIONES Introducción.
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.
B ENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA Sistemas Programables Juan José Fonseca Zárate T IMER 2 PIC 18 F
MICROCONTROLADORES NOCIONES BÁSICAS. ¿QUÉ ES UN MICROCONTROLADOR? MICROCONTROLADOR = MICROPROCESADOR + MEMORIA + PERIFERICOS.
ETC-II APM-Octubre-2007 Universidad Autónoma de Madrid Escuela Politécnica Superior ETC-II Septiembre-2009 Laboratorio de Estructura y Tecnología de Computadores.
Date | Place Señales Práctica I. Name | Company Objetivos Captura de una señal y tratamiento de la misma Checkpointing.
Introducción al tiempo real en sistemas empotrados
Unidad I: Registros e Interrupciones Facilitador: Ing. Eduardo Brando.
Unidad 2: Segmentación Excepciones en la Segmentación Docente: Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III.
Unidad II Introducción a la programación en C++

Programación en C para electrónicos
PIC16F877 Timers.
 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,
Universidad Técnica Federico Santa María Departamento de Electrónica Seminario II1 Timers A - B. Usos y programación. Paola Rojas Pablo Naveas Carlos Silva.
Módulo LCD Controlador HD44780.
Sesión 11: - Comparador, Captura y PWM. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Sesión 09: TIMER como base de tiempo.
Sesión 08: Interrupciones - IRQ. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales.
Microprocesadores II PIC16C5X Ing. Nelwi Báez.
Sesión 07: Interrupciones. 2009/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Circuitos Digitales III 2010/1 Sistemas Digitales II Universidad.
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
NOCIONES BÁSICAS COMPUTO II
CORPOCIDES Ing. Emilio Medina Baquero
INTERRUPCIONES – ABRAZO MORTAL
ESTADO Registro de ESTADO más utilizado  Es el registro más utilizado.  Ocupa la dirección 03 H tanto del Banco 0 como el Banco 1 de la Memoria de Datos.
Los Controles de Visual Basic. Integrantes: Stephanie Castillo Grado: 12°I Edrich García David Rodríguez Alvan Samudio Integrantes: Stephanie Castillo.
CONJUNTO DE INSTRUCCIONES Maquinas Digitales
Programando puertos en C freescale
ò Unidad Aritmético-Lógica ò Unidad de Control ò Buses internos ò Registros ò Puntero de Instrucciones (IP o PC) ò Acumulador ò De uso Generales ò.
Curso: Fundamentos de Computación
Programación de microcontroladores PIC16f877a en linux
Máquinas de estado con VHDL
Lenguaje ensamblador Conceptos introductorios. Formatos de Instrucción. Modos de Direccionamiento. Conjunto de instrucciones básico. Introducción al Lenguaje.
Arquitectura de Computadores Clases Interrupciones de software y hardware IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica.
Parte I Pines de E/S Interrupciones
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.
Transcripción de la presentación:

INTERRUPCIONES Y TEMPORIZADORES Programación en C para electrónica

Interrupciones 2 Interrupciones y temporizadores- Programación en C para electrónica

Interrupciones del PIC 16F876A Las interrupciones permiten la interrupción del programa a cualquier suceso (interno o externo). Al producirse una interrupción el PIC salta a la dirección del vector (0004h) de interrupción y ejecuta la rutina. Cuando la rutina de manejo de la interrupción finaliza (RETFIE) el programa retorna al punto donde se interrumpió el programa. 3 Interrupciones y temporizadores- Programación en C para electrónica

Interrupciones del PIC 16F876A El PIC 16F876A tiene un único vector de interrupción y todas las interrupciones provocan un salto a ese vector. (0004h) La rutina de manejo de la interrupción debe identificar qué evento interrumpió el programa para ejecutar la rutina correspondiente. El PIC posee registros con “flags” de interrupción que permiten identificar el evento. 4 Interrupciones y temporizadores- Programación en C para electrónica

Registros de interrupción 5 Interrupciones y temporizadores- Programación en C para electrónica

Registros de interrupción 6 Interrupciones y temporizadores- Programación en C para electrónica

Registros de interrupción 7 Interrupciones y temporizadores- Programación en C para electrónica

Interrupciones en CCS CCS dispone de directivas para el manejo de interrupciones.  #int_XXXX. La directiva especifica que la función que la sigue es la función de interrupción correspondiente. Ejemplo: //interrupción timer 1 #int_TIMER1 void TIMER1_isr (void) { switch (ciclo) { case 0: Interrupciones y temporizadores- Programación en C para electrónica

Interrupciones en CCS 9 Interrupciones y temporizadores- Programación en C para electrónica

Funciones para interrupciones El compilador incluye funciones para facilitar el manejo de interrupciones en C. enable_interrupts(level)  Activa las interrupciones indicadas por level. disable_interrupts(level)  desactiva las interrupciones indicadas por level. clear_interrupts(level)  Borra el flag de interrupción indicado. 10 Interrupciones y temporizadores- Programación en C para electrónica

level Level es una constante definida en el fichero de cabecera (#include ). Genera el código necesario para activar las interrupciones correspondientes modificando los registros ITCON, PIE1 y PIE2. Cuando se activa alguna interrupción es necesario activar “globalmente” las interrupciones. 11 Interrupciones y temporizadores- Programación en C para electrónica

level 12 Interrupciones y temporizadores- Programación en C para electrónica

Ejemplos: enable_interrupts(INT_TIMER1); enable_interrupts(GLOBAL); disable_interrupts(GLOBAL); clear_interrupts(INT_RTCC); enable_interrupts(GLOBAL | INT_RTCC); Nota: Esta ultima solo se puede hacer con interrupciones del mismo registro. 13 Interrupciones y temporizadores- Programación en C para electrónica

Programación en C para electrónica Temporizadores 14 Interrupciones y temporizadores- Programación en C para electrónica

Temporizadores: El PIC 16F876A dispone de tres temporizadores/contadores:  Timer 0: 8 bits.  Timer 1: 16 bits.  Timer 2: 16 bits. Pueden funcionar como contadores de flancos externos o como temporizador (contador de ciclos máquina). Disponen de “prescaler” para ampliar el tamaño de la cuenta (hasta x256). 15 Interrupciones y temporizadores- Programación en C para electrónica

Timer 1: Cuenta de 16 bits en dos registros de 8 bits: TMR1H (parte alta) y TMR1L (parte baja) Los registros de cuenta se pueden leer y escribir. Interrupción por desboradmiento de FFFFh a 0000h. Controlado por el registro T1CON. Funcionamiento como:  Temporizador (incrementa cada ciclo máquina).  Contador síncrono.  Contador asíncrono. 16 Interrupciones y temporizadores- Programación en C para electrónica

Timer 1: 17 Interrupciones y temporizadores- Programación en C para electrónica

T1CON: 18 Interrupciones y temporizadores- Programación en C para electrónica

Timer 1 en C: CCS provee funciones de configuración de los teporizadores:  setup_timer_X (modo) Programa el modo de funcionamiento del timer X  get_timerX () Lee el valor de la cuenta.  set_timerX (valor) Escribe “valor” en los registros de cuenta. 19 Interrupciones y temporizadores- Programación en C para electrónica

setup_timer_1(mode) Configura el timer 1. El modo de funcionamiento (mode)es una constante definida en el archivo de cabecera. Los modos se pueden agrupar con |. 20 Interrupciones y temporizadores- Programación en C para electrónica

set_timer1(value) y get_timer1 set_timer1 escribe “value” (entero de 16 bits) en los registros de cuenta del timer 1 (TMR1H yTMR1L). get_timer1() devuelve (16 bits) el valor de los registros TMR1H yTMR1L.  value=get_timer1(); 21 Interrupciones y temporizadores- Programación en C para electrónica