ARITMÉTICA

Dentro de los microcontroladores PIC se cuenta con instrucciones aritméticas tales como:

ADDWF y ADDLW para efectuar operaciones de suma.

SUBWF y SUBWF para efectuar operaciones de resta.

RLF para realizar multiplicaciones por 2.

RRF para realizar divisiones entre 2.

Hasta este punto podríamos ver el conjunto de instrucciones un poco limitado. Sin embargo, utilizando técnicas avanzadas de programación podemos obtener operaciones más complejas.

TEMPORIZACIÓN

A veces se necesita realizar un retardo de tiempo cuando programamos. 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.

https://entrrnadorpic16f84.wordpress.com/wp-content/uploads/2008/09/19.jpg

El ciclo repetitivo de retardo de la figura se tomará un número de ciclos así:

https://entrrnadorpic16f84.wordpress.com/wp-content/uploads/2008/09/20.jpg

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 entonces será de 46 µsegundos.

Deja un comentario