Universidad Antonio Nariño
Aplicación Industrial de Micros
Código: 444405
CAPITULO
3
Técnicas en languaje ensamblador
3.6 Temporización
Existen momentos dentro de la programación en los que se necesita
realizar un retardo de tiempo. Los retardos de tiempo se pueden obtener
mediante hardware o por medio de ciclos repetitivos
basados en software. La precisión de los retardos generados
por software depende en esencia del
tipo de oscilador que se utilice como base de tiempo en el microcontrolador,
la mayor precisión se obtiene de los cristales de cuarzo.
La velocidad a la que se ejecuta el código (instrucciones) depende
de la velocidad del oscilador y del número de ciclos de máquina
ejecutados. Las instrucciones necesitan 1 ó 2 ciclos de máquina
para ser ejecutadas. Un ciclo de máquina es un tiempo utilizado
por el microcontrolador para realizar sus operaciones internas y equivale
a cuatro ciclos del oscilador. Por tanto:
Tciclo máq.= 4 * Tosc
® Tciclo máq
= 4 / fosc
El número de ciclos de máquina utilizados por una instrucción
para ser ejecutada depende de la misma. Las instrucciones que modifican
el contador de programa necesitan dos (2) ciclos de máquina, mientras
que todas las demás necesitan tan solo uno (1).
El hecho de generar ciclos repetitivos por medio del programa y calcular
el tiempo total de ejecución nos puede ayudar a generar tiempos
precisos.
FIG. 3.6.1 Ciclo repetitivo de retardo
El ciclo repetitivo de retardo de la figura 3.6.1 se tomará
un número de ciclos así:
Operación
|
# de ciclos |
la carga de k en W |
1 |
la carga de W en el contador |
1 |
el decremento del contador mientras no llegue a cero |
k-1 |
el decremento del contador cuando llegue a cero |
2 |
el salto a Loop |
2 * (k-1) |
Total:
|
3*k+1 |
Por cada instrucción agregada debe incluirse en la cuenta total
el número de ciclos correspondiente a dicha instrucción.
Trabajando a 4 Mhz y asumiendo que k se remplaza por el valor 15d
en el ejemplo tendríamos un tiempo igual a:
Número de ciclos = (3*15) +1 = 46 ciclos de máquina,
Tciclo máq.= 4 / 4 Mhz = 1 µ
segundo, el tiempo total del ejemplo entonces será 46 µsegundos.
índice de capítulo