Pic Interrupciones

Páginas: 7 (1574 palabras) Publicado: 9 de marzo de 2013
Práctica 4

Interrupciones y temporización

1

Práctica 4 Interrupciones y temporización.

1. Objetivos
Uno de los objetivos de esta práctica es que el alumno aprenda el funcionamiento de las interrupciones y su manejo, y que profundice en las técnicas básicas de temporización de los microcontroladores. Como elemento periférico se utilizará el temporizador 1 del microcontrolador, ademásde los elementos vistos ya en la sesión anterior, como el LCD. Todos estos conceptos se pondrán en práctica realizando un sencillo temporizador de horas minutos y segundos.

2. Introducción
En esta práctica se utilizarán los temporizadores del PIC y el LCD y se aprenderá a utilizar las interrupciones y su programación en lenguaje C. En las siguientes secciones se encuentran explicados todos loselementos necesarios para realizar con éxito esta sesión.

Interrupciones en el compilador C18
La directiva #pragma interruplow nombre y #pragma interrup nombre definen rutinas de servicio de interrupción (ISR). La primera de baja primoridad interruplow y la segunda de alta prioridad #pragma interrup. Ejemplo:
void foo(void); ... #pragma interrupt foo void foo(void) { /* interrupción */ }El C18 no sitúa automáticamente las ISR en las posiciones de los vectores de interrupción. Hay que definir una sección de código que se sitúe en las posiciones definidas para los vectores de interrupción y dentro de dicha sección introducir un salto a la ISR correspondiente. Normalmente se pone un goto para llevar el control desde los vectores de interrupción hasta las subrutinas ISR. En elsiguiente ejemplo se declara una subrutina de interrupción (denominada high_isr) asociada a la interrupción de alta prioridad en la posición 0x08, perteneciente al vector de interrupción de alta prioridad:
#include void high_isr(void); #pragma code high_vector=0x08 void interrupt_at_high_vector(void) { _asm GOTO high_isr _endasm } #pragma code #pragma interrupt high_isr void high_isr (void) { /* ...*/ } /* vuelve a la sección de código por defecto */

Laboratorio de Sistemas basados en Microprocesadores y Sistemas Electrónico Digitales

Práctica 4

Interrupciones y temporización

2

2.1 El temporizador del PIC
El PIC18F2550 tiene cuatro temporizadores (timer0, timer1, timer2 y timer3) que se pueden configurar de muy diferentes maneras. Para la sesión de hoy se va a utilizar eltimer1, que se trata de un contador/temporizador de 16 bits, que almacena en los registros TMR1L:TMR1H el valor de cuenta. TMR1L contiene la parte baja y TMR1H la parte alta de los 16 bits. Como vamos a utilizar el reloj interno del PIC, tendremos que poner el timer1 en modo temporizador (timer) en vez del modo contador (counter). También hay que encenderlo, habilitar el oscilador y seleccionar elfactor de escala de predivisor. Todo esto se programa con el registro T1CON. Por ejemplo haciendo T1CON=00000001b encendemos el timer1, el factor de escala es uno y se utiliza el reloj interno (los impulsos que incrementan el valor de cuenta proceden de la señal de reloj dividida entre 4).

Siempre se cuenta hacia arriba de manera que cuando se pasa de 0xFFFF a 0x0000 se produce un desbordamientoque activa el bit 0 (denominado TMR1IF ) del registro PIR1, lo que indica este desbordamiento (después del desbordamiento el bit TMR1IF se debe poner a cero por software). Si además se tiene habilitada la interrupción del timer1 mediante la activación (puesta a ‘1’) del bit 0 (denominado TMR1IE) del registro PIE1 y se tienen habilitadas las interrupciones de los periféricos y la general mediantela activación de los bits 6 y 7 (PEIE y GIE) del registro INTCON. Utilizar las interrupciones sin niveles de prioridad, ya que no es necesario distinguir entre varias fuentes de interrupción. Para ello el bit 7 (IPEN ) del registro RCON debe ser ‘0’. En este caso todas las interrupciones tienen la misma prioridad y todas utilizan la dirección del vector de interrupción 00008h. La rutina de...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Practica interrupciones pic 16f887
  • Interrupciones Pic
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones
  • Interrupciones

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS