He estado en el sistema Embedded durante 8 meses. He trabajado la parte de la aplicación más en comparación con el nivel bajo. Tengo preguntas básicas sobre los ticks de los sistemas,
Para responder a tu primera pregunta.
Básicamente, es lo mismo con todos los microcontroladores y su cálculo fue correcto. En su ejemplo, con un temporizador de 16 bits y,
Como dijiste, tenemos una marca en cada,
Con un temporizador de 16 bits significa,
garrapatas Entonces el temporizador se desbordará en cada,
Puede contar los desbordamientos para obtener un retraso específico. Ahora, si desea cambiar el valor de t overflow
De esta manera se puede lograr una gran cantidad de valor de retardo.
la frecuencia del reloj de instrucción es diferente en diferentes familias de microcontroladores. un microcontrolador PIC tiene un reloj de instrucciones de 1/4 de la frecuencia del reloj. y cada instrucción (en su mayoría) (excepto goto) toma 1 ciclo de reloj de instrucción, goto toma 2 ciclos.
en un atmel µC, el reloj de instrucciones es el mismo que la frecuencia del reloj.
en varios µC puede configurar un montón de divisores y configuraciones de desbordamiento, verifique la hoja de datos de su µC específico en casi todos los PIC, puede configurar divisores como 1/8, por lo que cada ciclo de reloj de 8 instrucciones el temporizador aumenta con uno. por lo que el temporizador funciona a 1 MHz si su reloj de instrucción es de 8 MHz (el oscilador funciona a 32 MHz)
o un divisor de 1/2 para que su temporizador funcione a 1 MHz si, el reloj del sistema a 2 MHz y el oscilador a 8 MHz
algunos µC tienen múltiples osciladores internos, por ejemplo: 8MHz, 4MHz y 32.786 kHz y si cambia entre esas frecuencias, puede reducir el consumo de energía. pero cambias el reloj de instrucciones y por lo tanto también el temporizador
Eso podría depender del registro del preescalador. El propósito del preescalador es permitir que el temporizador se cronometre a la velocidad que desee. Para temporizadores más cortos (8 y 16 bits), a menudo habrá una compensación entre la resolución (la alta resolución requiere una frecuencia de reloj alta) y el rango (las frecuencias de reloj altas hacen que el temporizador se desborde más rápidamente).
Por ejemplo, no puede (sin algunos trucos) obtener una resolución de 1 us y un período máximo de 1 segundo utilizando un temporizador de 16 bits. Si desea una resolución de 1 us, está limitado a un período máximo de aproximadamente 65 ms. Si desea un período máximo de 1 segundo, está limitado a una resolución de aproximadamente 16 us. El prescaler le permite hacer malabares con la resolución y el período máximo para satisfacer sus necesidades.
Siga las hojas de datos del controlador que está utilizando. Ir a través del registro del temporizador. Algunos controladores tendrán un preescalador de valor fijo (no modificable por el programador) y en algunos controladores puede ser modificable
Creo que esto responderá a su primera y segunda pregunta.
La bestia
Bence Kaulics
La bestia
Bence Kaulics
La bestia
Bence Kaulics
La bestia