Está en la página 1de 10

INSTITUTO POLITECNICO NACIONAL.

UNIDAD PROFESIONAL INTERDISCIPLINARIA EN INGENIERIA Y TECNOLOGIAS


AVANZADAS.

PROGRAMACIÓN DE SISTEMAS EN TIEMPO REAL.


Subrutina de tiempo de 3 variables.

Pizano Alanis José de Jesús.

4BV1.
OBJETIVOS.

Para calcular el tiempo de ejecución de un programa o de una subrutina, se puede contar el numero de
instrucciones que se realizan y multiplicarlo por 4 veces la frecuencia de la señal de reloj o por 8 en caso de que las
instrucciones sean de salto.
EL MPLAB dispone de una opción de cronometro denominada STOPWATCH que permite medir el tiempo de
ejecución de las instrucciones de los programas.
Esto resultara muy útil al momento de comprobar más adelante lo que será la subrutina de tiempo de 3 variables,
ya que con la opción STOPWATCH se verificará el resultado de esta subrutina. La ventaja de este tipo de subrutina
(3 variables ) es que permite generar tiempos de espera mucho más largos que los obtenidos por una de 2 o 1
variable, en esta práctica se verá como se obtiene la fórmula para obtener los ciclos de este tipo de subrutina.

INTRODUCCIÓN.

En muchas aplicaciones y proyectos con micro controladores resulta necesario generar tiempos de espera,
denominados tiempo de retardo. Estos intervalos pueden conseguirse mediante una subrutina de retardo basada
en un lazo simple de algunas instrucciones que se repiten tantas veces como sea necesario hasta conseguir el
retardo pretendido. Como el tiempo de ejecución de cada instrucción es conocido lo único que hay que hacer es
calcular el valor inicial que deben tener los registros que servirán de contadores.

Para el caso de la subrutina de tiempo de 3 variables se deben utilizar lazos anidados, poniendo un lazo de retardo
dentro de otro. La forma de hacerlo se verá a continuación.
DESARROLLO.

Para empezar primero se tiene que construir el programa que servirá como base para poder realizar el análisis de
la subrutina, y de esta forma obtener la fórmula para los ciclos. El programa incluye un ciclo de push button para
llamar a la subrutina de tiempo, como se ve en la FIGURA 1 los valores de los registros que servirán como
contadores se agregan antes de llamar a la subrutina principal.

FIGURA1. Programa base de la subrutina.


Ahora se analizaran los ciclos que tardará cada instrucción, esto se hará con los valores de 2, 4 y 6.

De esta forma se podrá construir una formula general que servirá para cualesquiera valores que se usen como
contadores, claro recordando que no podrán ser mayores de 255.

El desarrollo de puede apreciar en la FIGURA 2. Donde en Excel se realizó una tabla con los números de ciclos de
cada instrucción a partir de donde se pudo establecer una formula general.

Se anexa en la FIGURA 2.1 Y 2.2. La tabla hecha a mano.


FIGURA 2.1, TABLA PREVIAMENTE HECHA A MANO.
FIGURA 2.2 TABLA PREVIAMENTE HECHA A MANO.
carga1 call carga21 carga22 Nops dec(6) GOTO DEC2(6) DEC(4) GOTO2 DEC2(4) DEC(2) GOTO3 DEC2(2) RETURN
6 2 2 2 #nops 1 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 #nops 1 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 #nops 1 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 #nops 1 2 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 2 #nops 1 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 #nops 1 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 #nops 1 2 2 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops

2 #nops 1 2 2 2 2 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops 1 2
#nops
3*v1*v2*(v3-
6 2 2*v1 2*VI*V2 (#nops*v1*v2*v3) 1) 2*v1*v2 3v1*(v2-1) 2*v1 3*(v1-1) 2 2

FIGURA2.TABLA HECHA EN EXCEL DONDE SE VEN LOS CICLOS DE LA SUBRUTINA.

Los Valores obtenidos con la tabla todavía se pueden simplificar, resultando en la siguiente fórmula:

9 + 𝑣1𝑣2𝑣3 #𝑛𝑜𝑝𝑠 + 3 + 4𝑣1 + 4𝑣1𝑣2

Para comprobar que la formula es correcta, ahora usaremos los mismos valores de 2, 4 y 6 y 3 nops , en el programa
mostrado al inicio. Con la opción STOPWATCH veremos que al restar los ciclos que le toma llegar al programa a la
subrutina obtendremos los ciclos totales de la subrutina,

Con la formula el resultado tendría que ser: 337 micro segundos.


RESULTADOS.

Al realizar la simulación, se ve que al programa le tomó 6 ciclos llegar la subrutina (FIGURA3), al realizar la resta de
los ciclos al final menos 6 se obtendrá el numero de ciclos totales.

FIGURA3.Antes de llegar a la subrutina, el programa tarda 6 ciclos en llegar a esta.


Al realizar la simulación de la subrutina utilizando un breakpoint, los ciclos son 343, menos los 6 ciclos que le toma
llegar a la subrutina el resultado será 337, tal como se obtuvo la formula.FIGURA4.

FIGURA4.SE MUESTRA EN LA IMAGEN EL NUMERO TOTAL DE CICLOS MENOS 6, DANDO 337, EL NUMERO
DE CICLOS TOTALES DE LA SUBRUTINA.

CONCLUSIONES.
Las subrutinas de tiempo son muy importantes y estas se usan frecuentemente en los programas de los
microcontroladores , en clase se vieron las de una y dos variables, pero ahora con la de 3 variables los tiempos
obtenidos pueden ser mayores. Al obtener la fórmula para los ciclos de estas subrutinas, simplemente se tiene
que encontrar los valores deseados a usar como contadores para obtener los ciclos totales deseados.

Referencias Bibliograficas.
PIC16F84. DESARROLLO DE PROYECTOS / 2 ED.
Palacios Municio, Enrique , Fernando Remiro Dominguez.
Editorial: Alfaomega Grupo Editor
Pags 171-177.

También podría gustarte