Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Timer_0 (RTCC)
Temporizador que permite realizar un conteo hasta que este se desborde (llegue al límite del
conteo) y detenga la ejecución de las instrucciones para atender el llamado del Timer, o
también, que realice una tarea en específico cuando el Timer llegue a su valor final.
El Timer se carga con un valor llamado “pre-escaler” el cual puede tener los siguientes
valores:
RTCC_DIV_2, RTCC_DIV_4, RTCC_DIV_8, RTCC_DIV_16, RTCC_DIV_32, RTCC_DIV_64,
RTCC_DIV_128, RTCC_DIV_256.
Para obtener el valor del Timer con el que debe cargarse, se usa la siguiente fórmula:
𝑇𝑖𝑒𝑚𝑝𝑜(𝑠) ∗ 𝐹. 𝑂𝑠𝑐
𝐶𝑎𝑟𝑔𝑎𝑇 = = 𝑉𝑎𝑙𝑜𝑟 𝑑𝑒𝑙 𝑇𝑖𝑚𝑒𝑟
4 ∗ 𝑃𝑟𝑒𝑒𝑠𝑐𝑎𝑙𝑒𝑟
Pero para que el Timer llegue a su valor máximo (255) y se genere la interrupción, este debe
pasar de 255 a 0, por lo que se debe realizar lo siguiente:
256 − 𝑉𝑎𝑙𝑜𝑟 𝑑𝑒𝑙 𝑇𝑖𝑚𝑒𝑟
Consideraciones:
• Tratar siempre de obtener un número entero en la realización de la fórmula para el
valor del Timer.
• El valor del Timer no debe ser mayor a 256.
enable_interrupts(INT_RTCC);
enable_interrupts(GLOBAL);
Activación de la interrupción por desbordamiento.
El termino proporcional estará dado por la ganancia proporcional multiplicada por el error, es
decir:
𝐾𝑝 ∗ 𝑒
Donde e es el error (señal de salida censada – señal de referencia)
Para el término integral, estará dado por el término integral (en un comienzo, este será cero,
para posteriormente ir obteniendo valores y usarse en el ciclo) mas el error multiplicado por
la ganancia integral, como se muestra a continuación:
𝐼𝑛𝑡𝑒𝑔𝑟𝑎𝑙 = 𝐼𝑛𝑡𝑒𝑔𝑟𝑎𝑙 + 𝑒 ∗ 𝐾𝐼