26.12.2014 Views

microcontrolador mc68hc11

microcontrolador mc68hc11

microcontrolador mc68hc11

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MICROCONTROLADOR 68HC11: Fundamentos, recursos y programación.<br />

MICROBÓTICA<br />

4.6. INTERRUPCIONES EN TIEMPO REAL<br />

MODA<br />

MODB<br />

XTAL EXTAL E IRQ XIRQ RESET<br />

4.6.1. Introducción<br />

CONTROL DE<br />

LOS MODOS<br />

TEMPORIZADOR<br />

OSCILADOR<br />

LOGICA DEL<br />

RELOJ<br />

LOGICA DE<br />

INTERRUPCIONES<br />

ROM 8K<br />

EEPROM 512 BYTES<br />

RAM 256 BYTES<br />

La interrupción en tiempo real (Real Time<br />

Interrupt)<br />

es una interrupción que se produce cada ciertos<br />

BUS EXPANSION<br />

SPI<br />

SCI instantes<br />

DIRECCIONES DIRECCIONES/DATOS<br />

fijos de tiempo. El intervalo de tiempo comprendido entre 2<br />

VRH<br />

interrupciones de tiempo real consecutivas se puede<br />

configurar<br />

E/S PARALELA<br />

VRL<br />

modificando los bits 0 y 1 del registro PACTL CONVERSOR ($1026).<br />

A/D<br />

Para un cristal de 8 MHZ se tiene que:<br />

CONTROL<br />

CONTROL<br />

Bit Bit 0<br />

Intervalo de tiempo<br />

1<br />

0 0 4.096ms (4.1ms aprox)<br />

0 1 8.192ms (8.2ms aprox)<br />

1 0 16.384ms (16.4ms aprox)<br />

1 1 32.768ms (32.77ms aprox)<br />

Por ejemplo, configurando los bits 0 y 1 con el valor 1, cada 32.7ms se producirá una interrupción en tiempo<br />

real.<br />

¿Para qué se utiliza esta interrupción Tiene múltiples aplicaciones. Por ejemplo para programar relojes en<br />

tiempo real, cronómetros, calendarios, muestrear datos, etc.<br />

El bit 6 del registro TFLG2 se activa cada vez que se produce una interrupción en tiempo real. Este bit es el<br />

que está indicando a la CPU que hay una interrupción de tiempo real pendiente, por lo que la rutina de servicio de<br />

esta interrupción lo primero que debe hacer es poner este bit a cero. Si no se hace, al terminar la rutina la CPU<br />

detecta que este bit sigue activo y lo toma como si se hubiese producido otra interrupción. Esto produce que se<br />

vuelve a ejecutar la rutina de servicio y la CPU entra en un bucle infinito. El bit 6 del registro TMSK2 ($1024)<br />

es el que habilita o deshabilita la interrupción de tiempo real.<br />

El bit se pone a cero escribiendo un "1" en ese bit y ceros en los demás; es decir, escribiendo el valor $40 en<br />

el registro TFLG2. Esto se puede hacer utilizando STAA o BCLR.<br />

Ejemplo:<br />

LDAA $40<br />

STAA TFLG2,X<br />

PUERTO A<br />

PUERTO B<br />

CPU<br />

PUERTO C<br />

PUERTO D<br />

PUERTO E<br />

4.6.2. Los registros de las interrupciones en tiempo real<br />

En la siguiente tabla se resumen los registros relacionados con las interrupciones de tiempo real:<br />

PACTL $1026 Bits 0 y 1 establecen período tiempo<br />

TMSK2 $1024 Bit 6 Activar o desactivar interrupción.<br />

TFLG2 $1025 Bit 6 interrupción pendiente.<br />

En las siguientes figuras se muestran los registros relacionados con más detalle.<br />

7<br />

0<br />

0<br />

TMSK2 PACTL<br />

DIRECCION DIRECCION $1024 $1026<br />

DDRA7 TOI RTIIPAEN PAOVIPAMOD PAII PEDGE 0PR1 0 PR0 RTR1 RTR0<br />

RTR1,RTR2 = Determinan el periodo de tiempo entre<br />

TOI = Permiso de interrupción cada de interrupción overflow en de timmer(1 teimpo real permitida, 0 inhibida)<br />

RTII = Permiso de interrupción de tiempo real<br />

PAOVI= Permiso de interrupción de overflow en acumulador de pulsos<br />

PR1,PR0 =Factor de división de la señal E<br />

LX

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!