La diferencia entre temporizadores y contadores de microcontroladores
La diferencia entre contadores y temporizadores de microcontrolador
La esencia de los contadores y temporizadores es la misma. Ambos cuentan los pulsos generados en el microcontrolador, pero el microcontrolador activa externamente el contador. El pulso, el temporizador es un pulso generado dentro del microcontrolador bajo el disparador del oscilador de cristal. El contador y el cronómetro son un concepto cuando sus intervalos de pulso son los mismos.
Tanto los temporizadores como los contadores tienen el concepto de desbordamiento, entonces, ¿qué es el desbordamiento? Jaja, puedes obtener la respuesta con un poco de sentido común. Cuando se coloca un recipiente debajo del grifo para recoger agua, después de un tiempo el recipiente se llena y se desborda. De la misma manera, si el agua del grifo gotea en un recipiente, siempre habrá una gota de agua que hará que el recipiente se desborde. El agua que se desborda en el recipiente se desperdicia, pero el desbordamiento en el contador del microcontrolador provoca una interrupción. En cuanto a qué es una interrupción, hablaremos de ello la próxima vez. Este es sólo un concepto preliminar. Interrupción se refiere al proceso de interrumpir el funcionamiento normal del sistema y ejecutar un programa de servicio. Cuando el programa de servicio se esté ejecutando, volverá automáticamente al lugar donde fue interrumpido y continuará ejecutándose.
En los contadores temporizadores tenemos un concepto llamado capacidad, que es el conteo máximo. El modo 0 es 2 elevado a la 13.ª potencia, el modo 1 es 2 elevado a la 13.ª potencia, el modo 2 es 2 elevado a la 8.ª potencia y el modo 3 es 2 elevado a la 8.ª potencia. Comparando las gotas de agua con los pulsos, la última gota que hace que el agua del recipiente se desborde es el último pulso que se desborda el temporizador.
En varios libros sobre microcontroladores, cuando presentamos contadores de tiempo, hablamos de un valor de conteo inicial, entonces, ¿cuál es el valor de conteo inicial? Supongamos que tenemos un recipiente de goteo aquí. Supongamos que la centésima gota de agua puede desbordar el agua del recipiente. Sabemos que la capacidad del recipiente es 100. Pregunta 1, ¿cómo hacer que el recipiente se desborde después de recibir 10 gotas de agua? Jaja, me imagino que si cogemos un cuenco vacío para recoger el agua, todavía hacen falta 100 gotas para desbordarse, pero si cogemos un cuenco que ya tiene agua, no hacen falta 100 gotas. En este punto, podemos calcular que para que 10 gotas de agua se desborden del recipiente, primero se debe llenar el recipiente con 90 gotas de agua.
En el cronómetro, estas 90 gotas de agua son lo que llamamos el valor inicial. Pregunta 2: ¿Cómo contar 100 productos en un taller y empaquetarlos automáticamente?
Podemos utilizar un contador para contar 100 y realizar operaciones de empaquetado automático en interrupciones.
Aquí hay tres recuentos iniciales. Supongamos que hay una forma 0: recuento inicial = 8912 (13 elevado a la potencia 2). 100=8812. Modo 1: ¿Valor de conteo inicial = 65536 (2 elevado a 65438 + 06)? 100=65436. Modo 0: ¿Valor de conteo inicial = 256 (2 elevado a la octava potencia)? 100=156.
Según el valor inicial obtenido, y luego convertirlo a 16 o binario, puedes contar o tiempo. Por supuesto, para que el programa se ejecute completamente, es necesario configurar los registros correspondientes. Estos se pueden encontrar en varios tutoriales de MCU.
La diferencia entre temporizadores y contadores en microcontroladores
Un temporizador es en realidad un contador, pero cuenta los pulsos en un período fijo.
Los temporizadores/contadores son fáciles de entender.
De hecho, el temporizador también funciona en modo conteo, y solo cuenta pulsos de un período fijo. Debido a que el período del pulso es fijo, el tiempo se puede calcular a partir del valor del conteo y tiene una función de sincronización.
Excepto por las diferentes fuentes de disparo (señal de reloj y pulso externo), la sincronización y el conteo son los mismos.
Los registros del microcontrolador pueden considerarse interruptores electrónicos, que se utilizan para conmutar diferentes funciones y señales.
En 51, la fuente de la señal de conteo se cambia mediante el bit T/C de TMOD.
Cuando el T/C está funcionando en el temporizador, el oscilador de conteo se divide en 12 pulsos, es decir, el valor de conteo de cada ciclo de la máquina aumenta en 1, la frecuencia de conteo es 1/12 fosc ; la frecuencia del oscilador de cristal es de 6 MHZ. Cuando, la frecuencia de conteo es de 500 KHz y el valor de conteo se incrementa en 1 cada 2 us;
Cuando el Timer/C funciona en el contador, el pulso de conteo proviene del pin de entrada de pulso externo T0 (P3.4) o T1 (P3.5). Cuando ocurre una transición negativa en el pin T0 o T1, el valor de conteo se incrementa en 1. Se necesitan 2 ciclos de máquina, o 24 ciclos de oscilador, para identificar una transición negativa en el pasador.
Por lo tanto, la frecuencia máxima de los pulsos externos contables ingresados en el pin T0 o T1 es 1/24 fosc. Cuando el oscilador de cristal es de 12 MHZ, la frecuencia máxima de conteo es de 500 KHz y se producirán errores de conteo por encima de esta frecuencia.
En cuanto al valor inicial, es el principio de la copa. Debido a que 51 solo se puede contar y solo puede dar una interrupción y activar el programa de interrupción en el momento en que la taza está llena, primero ponemos una cierta cantidad de frijoles en la taza y luego la cantidad correspondiente de frijoles estará llena. , y luego el programa de interrupción funcionará automáticamente.
Nota:
Excepto por las diferentes fuentes de disparo (señal de reloj y pulso externo), la sincronización y el conteo son los mismos.
Supongamos que queremos cronometrar un tiempo determinado (100 ciclos de máquina), solo necesitamos establecer el valor inicial en (valor de desbordamiento -100), suponiendo que queremos contar 100 elementos, en realidad establecemos el valor inicial. a (valor de desbordamiento -100) valor -100), y luego configure el pulso de entrada en entrada externa.
Entonces: el cronometraje y el conteo solo tienen diferentes fuentes de activación (señales de reloj y pulsos externos) y otros aspectos son iguales.
Establecer el valor inicial en la interrupción es preparar el siguiente ciclo. No hay nada que decir, depende.
Dado que el valor del contador de tiempo también se puede leer en cualquier momento, también podemos empezar a contar desde 0 para calcular el número de pulsos durante un período de tiempo o un período de tiempo determinado. Esto aún activa la interrupción, lo que significa que los pulsos (valor de desbordamiento del temporizador) se han contado nuevamente. Si el procesamiento de desbordamiento se realiza en una interrupción, se puede calcular un número mucho mayor que (valor de desbordamiento del temporizador).
En este momento, también debemos prestar atención a una cosa: además de la función de captura de T/C2 al leer 51, la lectura directa de TH y TL también puede cambiar continuamente, específicamente al leer un libro. . Cuando comprenda el contador del temporizador, podemos incluso configurar el valor de conteo en (valor de desbordamiento -1) para lograr un solo paso automático (modo de temporizador) o como una interrupción externa (modo de conteo). Piénselo detenidamente, jaja ;-)
En cuanto a la razón por la que es necesario proteger el sitio durante la interrupción, es para evitar que los parámetros de otros programas se modifiquen accidentalmente, afectando así el funcionamiento de otros programas. Por lo tanto, siempre que los datos movidos por el programa de interrupción estén protegidos y la memoria movida se restablezca al estado en el que se encontraba cuando se salió de la interrupción, el programa interrumpido no se verá afectado.
Este conjunto debe guardarse por separado. De todos modos, lo programé yo mismo, así lo tengo todo bajo control.
c, el compilador realizará automáticamente un análisis de cobertura y guardará automáticamente las variables que deben guardarse. Para aplicaciones generales, puede estar seguro. Por supuesto, si sabe exactamente lo que hace el compilador, puede incrustar el ensamblado, pero esto no se recomienda para principiantes. Dejémoslo en manos del compilador.
De hecho, se puede decir que estos son conocimientos básicos. Si no lo entiende, debe haber leído su libro con suficiente atención.
Supongo que te gusta
1. ¿Cuál es la estructura de hardware del microcontrolador?
2. Diseño del circuito del temporizador de 10 segundos
3. Documento técnico de un solo chip
4. Principio de sonido del microordenador de un solo chip.
5. Muestra de informe abierto de microcomputadora de un solo chip
6. Informe de pasantía electrónica de microcomputadora de un solo chip
7. informes.