Temporizadores com NRF24LE1 (Parte 7/14)

Temporizadores con NRF24LE1 (Parte 7/14)

Imagem do temporizador baseado no módulo NRF24LE El tiempo juega un papel importante en nuestra vida. Es normal que un ser humano reserve tiempo para planes futuros. Sólo necesitamos nuestro cerebro y un reloj para decidir cuál es la hora actual y cuánto tiempo ha pasado. De manera similar, un microcontrolador también puede calcular el tiempo. Sirve al cerebro como en el caso del ser humano y el reloj lo proporciona un oscilador. Para nosotros, perder un segundo puede no ser importante, pero para los microcontroladores, un microsegundo es muy crucial.

Temporizadores con NRF24LE1

El tiempo juega un papel importante en nuestra vida. Es normal que un ser humano reserve tiempo para planes futuros. Sólo necesitamos nuestro cerebro y un reloj para decidir cuál es la hora actual y cuánto tiempo ha pasado. De manera similar, un microcontrolador también puede calcular el tiempo. Sirve al cerebro como en el caso del ser humano y el reloj lo proporciona un oscilador. Para nosotros, perder un segundo puede no ser importante, pero para los microcontroladores, un microsegundo es muy crucial.
En este artículo encontrará respuestas a preguntas como: ¿ Cómo podemos usar NRF para controlar el tiempo transcurrido? ¿Cómo podemos generar un retraso para un período específico y mucho más?
La mayoría de los microcontroladores tienen funciones integradas conocidas como temporizadores. Estos temporizadores se utilizan para controlar el tiempo. También se pueden utilizar como contador para contar pulsos. El NRF24LE1 tiene tres temporizadores Timer0, Timer1 y Timer2. Solo discutiremos Timer0 en este artículo.
Protótipo de temporizador baseado em módulo NRF24LE
Fig. 1: Prototipo de temporizador basado en el módulo NRF24LE
El temporizador utiliza la frecuencia del reloj para actualizar la hora. Utiliza registros para almacenar el valor del tiempo. Por ejemplo, si utilizamos un reloj de 16 MHz que tiene un período de tiempo de 62,5 nS (nanosegundos), entonces el registro del temporizador incrementa su valor en 1 cada 62,5 mS. Esto también significa que la medida más pequeña que podemos hacer es 62,5 mS.
Imagem do temporizador baseado no módulo NRF24LE
Fig. 2: Imagen del temporizador basado en el módulo NRF24LE
Ya hemos comentado que el temporizador utiliza registros para almacenar el valor del tiempo. En el NRF24LE1 podemos elegir entre registro de 8 bits, registro de 13 bits y registro de 16 bits. La selección de registro afecta la cantidad de tiempo que puede almacenar un temporizador. Por ejemplo, un registro de 8 bits puede almacenar valores hasta 255. Si utilizamos la frecuencia de 16 MHz con un periodo de tiempo de 62,5 mS, la cantidad máxima de tiempo que este registro puede almacenar es (62,5 * 255) = 15,9 Estados Unidos (microsegundos).
Ahora bien, ¿y si cambiamos la frecuencia? Intentemos.
Digamos que mi nueva frecuencia es 16 MHz/8 = 2 MHz, lo que significa que el período de tiempo ahora es 0,5 uS. Ahora, si usamos un registro de 8 bits para almacenar el valor de tiempo, la cantidad máxima de tiempo que este registro puede almacenar es (0,5 * 255) = 127,5 uS (microsegundos). Lo que observamos es que, si disminuimos la frecuencia, aumenta el tiempo máximo que puede almacenar la caja registradora. El divisor que utilizamos para bajar la frecuencia se conoce como preescalador. Podemos cambiar este preescalador para cambiar la frecuencia. En el módulo NRF, el preescalador está integrado y configurado en 12. Esto significa que la frecuencia ahora pasa a ser 16/12 = 1,33 MHz.
Tenemos que seleccionar Timer0 para que funcione como temporizador o contador. Para ello disponemos del registro TMOD (Timer Mode). El segundo bit de este registro se utiliza para seleccionar entre temporizador y contador. Si este bit es 0, se selecciona el temporizador, y si es 1, se selecciona el contador. Tenemos que escribir esta parte según nuestra necesidad.
Para Timer0, tenemos tres modos:
1. Modo0: este modo se utiliza para seleccionar un registro de 13 bits.
2. Modo1: este modo es para registros de 16 bits.
3. Modo 2: es para recarga automática de 8 bits.
4. Modo3: este modo se utiliza para seleccionar un registro de 8 bits como temporizador/contador y otro registro de 8 bits como temporizador.
El primer bit y el bit cero del registro TMOD se utilizan para seleccionar entre diferentes modos. Las diferentes combinaciones de estos bits se refieren a diferentes modos. Ellos son:
00 – Modo0
01 – Modo1
10 – Modo2
11 – Modo3
Los registros que almacenan el valor de tiempo del temporizador0 son TL0 y TH0. Estos dos registros son de 8 bits cada uno. Se pueden combinar para utilizarlos como registro de 16 bits o registro de 13 bits. TH0 contiene el byte más alto y TL0 contiene el byte más bajo de datos. Además, si estos registros se llenan, se conoce como desbordamiento. Podemos comprobar si se ha producido un desbordamiento comprobando el indicador de desbordamiento en el registro TCON (Control del temporizador). El bit número cinco representa la bandera de desbordamiento. Si el indicador es 1, se ha producido un desbordamiento. Podemos escribir una rutina de servicio que se llame cuando se produzca un desbordamiento.
Los indicadores de desbordamiento se borran automáticamente cuando se llama a la rutina de servicio.
Para iniciar el temporizador tenemos que configurar el bit número cuatro del TCON. Si este bit es 0, el cronómetro se detendrá. También podemos acceder a este bit a través de la variable TR (Timer Run). Si TR = 1, se inicia el cronómetro. Si TR = 0, el cronómetro se detiene.
Hay más funciones de temporizador, como desbordamiento, control de hardware, control de puerta y contador de pulsos. Discutiremos estas características en nuestros próximos artículos.
Escribimos código para comprender los temporizadores. Estamos usando timer0 en modo1. Creamos un retraso de……

Código fuente del proyecto

###

 //Programa para

#include "reg24le1.h" // Archivo de encabezado de E/S para NRF24LE1
#incluir //biblioteca estándar #incluir //biblioteca que contiene funciones de cadena #incluir //biblioteca de E/S estándar sfr16 DPTR = 0X82; //declarar el registro funcional DPTR // función principal vacío principal { int yo = 0; P1DIR = 0; //Puerto1 como salida P10 = 0; //Puerto 1 pin 0 bajo EA = 1; //Habilitar interrupción global TMOD = 0X01; //timer0 en modo 1 de 16 bits TR0 = 1; //inicia el cronómetro // Bucle infinito mientras(1) { TH0 = 0; // inicializa el byte superior del registro del temporizador TL0 = 0; // inicializa el byte inferior del registro del temporizador mientras(TF0 == 0); // esperar a que aparezca el indicador de desbordamiento del temporizador TF0 = 0; //borrar bandera P10=1; //hace que el Pin0 del Puerto1 sea alto TH0 = 0; // inicializa el byte superior del registro del temporizador TL0 = 0; // inicializa el byte inferior del registro del temporizador mientras(TF0 == 0); // esperar a que aparezca el indicador de desbordamiento del temporizador TF0 = 0; //borrar bandera P10 = 0; //baja el Pin0 del Puerto1 } }

###

Diagramas de circuito

Diagrama de circuito-NRF24LE-Módulo-Temporizador

Vídeo del proyecto

Conteúdo Relacionado

En cada vehículo hay una red de sensores integrada...
El controlador del motor es uno de los componentes...
ESP32-CAM es un módulo de cámara compacto que combina...
La evolución de los estándares USB ha sido fundamental...
SCHURTER anuncia una mejora de su popular serie SWZ...
Visual Communications Company (VCC) ha anunciado sus nuevos tubos...
A Sealevel Systems anuncia o lançamento da Interface Serial...
A STMicroelectronics introduziu Diodos retificadores Schottky de trincheira de...
Determinar uma localização precisa é necessário em várias indústrias...
O novo VIPerGaN50 da STMicroelectronics simplifica a construção de...
A Samsung Electronics, fornecedora de tecnologia de memória avançada,...
O mercado embarcado tem uma necessidade de soluções de...
Probablemente se haya encontrado con el término " resistencia...
Probablemente tenga un aislante de soporte si ha notado...
Probablemente haya visto un aislante colocado en postes de...
Probablemente hayas visto aisladores de grillete entronizados en postes...
Probablemente hayas experimentado situaciones en las que controlar un...
Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.