Edge_Capture_App_Note

Páginas: 6 (1391 palabras) Publicado: 15 de diciembre de 2015
Basic Express
Nota de aplicación

Programación del Timer1 para
la captura de flancos
El temporizador Timer1 y el pin de entrada
El procesador BasicX incluye un temporizador integrado denominado Timer1. Este temporizador
puede utilizarse para numerosas funciones, una de las cuales es medir el retardo de tiempo hasta
que tiene lugar un incremento o decremento del nivel lógico en el pin de entradade captura.
¿Porqué se debe utilizar el Timer1 para la captura de flancos (edge capture)? La principal ventaja es
que el procesador no debe estar dedicado exclusivamente a esperar la transición del pin.
En comparación, podemos considerar la llamada al sistema RCtime, que realiza una función similar.
RCtime le permite configurar un pin de entrada/salida de uso general como input-tristate(impedancia
alta) y medir el retardo para una transición. El problema es que RCtime dedica el procesador a la
medición del tiempo. El reloj de tiempo real, la conmutación de tareas y el tráfico de la red se
suspenden durante esta función.
El temporizador Timer1 no tiene este problema. Mientras que Timer1 espera que se produzca un
evento de este tipo, el procesador puede seguir realizando el resto de lastareas.
Por otro lado, este enfoque tiene sus desventajas. Timer1 debería utilizarse únicamente cuando no se
produzcan conflictos con otros recursos del sistema, como los puertos serie Com2 o Com3, así como
los procedimientos InputCapture y OutputCapture, todos ellos dependientes del Timer1.
Puede preguntarse por qué no podemos utilizar el procedimiento InputCapture para la captura de
flancos. Hay dosproblemas – en primer lugar, la función primaria de InputCapture es medir el ancho
de los pulsos, y no registra el retardo para iniciar la primera transición. En segundo lugar, el
procedimiento se colgará si la transición nunca se produce.
Capacidades del temporizador Timer1
Podemos superar estos problemas utilizando el Timer1. Este temporizador es capaz de operar con 5
frecuencias discretas demarcado que oscilan desde aproximadamente 7,20 kHz a 7.37 MHz, lo que
implica que puede utilizar el Timer1 para medir los intervalos de tiempo con resoluciones entre 136 ns
y 139 µs.

Programación del Timer1 para la captura de flancos.

1

Los siguientes recursos se utilizan para acceder al Timer1 para la captura de flancos (edge capture):
Tipo

Nombre

Descripción

Byte
Byte
Byte
Byte
Byte
ByteByte

TCNT1L
TCNT1H
TCCR1B
TCCR1A
TIFR
ICR1L
ICR1H

Timer/Counter1 Low Byte
Timer/Counter1 High Byte
Timer/Counter1 Control Register B
Timer/Counter1 Control Register A
Timer/Counter Interrupt Flag register
T/C 1 Input Capture Register High Byte
T/C 1 Input Capture Register High Byte

Consulte los siguientes ficheros PDF para obtener más información sobre el Timer1, que en realidad
recibe el nombreTimer/Counter1. Este fichero se encuentra en el material de documentación de
instalación de BasicX y del chip Atmel presentes en el procesador BasicX.
BX-01: File AT90S4414_8515.pdf, página 31.
BX-24, BX-35: File AT90S_8535.pdf, página 32.
Advertencia -- Timer1 debería utilizarse únicamente cuando no se produzcan conflictos con otros
recursos del sistema, como los puertos serie Com2 o Com3, asícomo los procedimientos
InputCapture y OutputCapture, todos ellos dependientes del Timer1.
.

Programación del Timer1 para la captura de flancos
Iniciación
Necesitamos inicializar el temporizador antes de empezar a utilizarlo. El primer paso es poner a cero
el registro de control del temporizador Timer1 denominado TCCR1A. Esto desconecta el Timer1 de
los pines de salida OC1A y OC1B, e inhabilita elfuncionamiento de PWM:
Register.TCCR1A = 0
El siguiente paso es detener el temporizador:
Register.TCCR1B = 0
A continuación, debemos poner a cero los dos bytes del contador de Timer1. El byte alto debe
escribirse en primer lugar, seguido del byte bajo:
Register.TCNT1H = 0
Register.TCNT1L = 0
También debemos poner a cero el Input Capture Flag 1 (ICF1), que se hace escribiendo 1 en el bit
del...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS