HOME


En MicrAM Technologies estamos realizando desarrollos en electrónica para empresas. Si te considerás un verdadero profesional de la electrónica, mandanos tu curriculum vitae a andres@moraldo.com.ar para tener la oportunidad de trabajar en equipos de desarrollo del más alto nivel.


www.andres.moraldo.com.ar
Curso de Microcontroladores Pic
(By Andrés Moraldo)
Nivel Inicial - Avanzado
Argentina



Compilando y simulando el programa


Un programa medianamente normal no se escribe hasta el final sin ninguna prueba en el medio, pues es muy probable que hayan algunos errores. En la búsqueda de errores, cuanto menor cantidad de código tengamos que revisar, es mejor. Por eso es que cada tanto tiempo, debemos compilar el proyecto y simularlo. Si deseamos escribir todo el código de corrido, lo podemos hacer, pero de seguro tendremos más errores que matusalén.

Para compilar debe primero guardarse el proyecto y luego ir a proyecto Make Proyect. Este nos creará el proyecto y una ventana nos indicará los errores que tenemos.


En este cuadro que contiene el código fuente hemos escrito por error Statis en vez de Status, Como es de suponer, en el cuadro de Build Results nos indicará el error como Error 113, No existe definición previa. Si hacemos doble click encima de la oración que contiene Error (De la ventana de Build Results), esta se posicionará en la línea de código donde supuestamente esta el error.

Los errores no nos dejarán de terminar de compilar el código mientras que los Warnings y los messages si. Estos últimos son avisos de posibles errores.

Hay errores mas complicados como los errores de cambio de bancos: Nosotros estamos en un banco de memoria diferente al banco de memoria al que queremos acceder. Al leer o escribir un dato, leerá o escribirá cualquier cosa. Este tipo de errores los veremos mas adelante cuando simulemos el proyecto. Para evitar este tipo de errores, se debe tener especial cuidado al escribir el código pues muchas veces no generan un error implícito en el cuadro de Build Results.

Hay mas errores que los trataremos mas adelante cuando aparezcan (si no aparecen es que los he evitado :-))

Una vez que terminamos de compilar nuestro proyecto sin ningún error, podemos cerrar la ventana Build Results y empezar a simularlo.

En la Barra de herramientas, Windows, Special Funcions Register Windows, nos aparece una ventana como la siguiente con todos los registros especiales. Esta es la que mas se utilizará a la hora de simular un proyecto.


Puede tener cambios si estamos trabajando con diferentes tipos de micros. Los que se encuentran en rojo son los que han cambiado por ultima vez.

También tenemos controles para ver el tiempo en que se realiza una determinada acción. Esta esta en la Barra de Herramientas, Windows, Stopwatch. La ventana es la siguiente:


En la Barra de Herramientas, tenemos todas las cosas necesarias para revisar registros, modificarlos, para ver como se escribirá el programa en la memoria del PIC, registrar contadores de tiempo, etc. Sería bueno que probaran cada una de estas para conocer las herramientas que tenemos a la hora de trabajar.

Hay diferentes formas de simular proyectos.
Podemos ir línea a línea viendo como se modifican los registros a medida que pasa el tiempo. Para ello tenemos en la Barra de Herramientas, Debug. Dentro tenemos, entre las mas comunes.

La opción Run (Aquí tenemos la opción Step (paso por paso), Reset (Resetea), Animate (corre la simulacion paso a paso automaticamente hasta que se presiona Halt), Halt (detener la simulación), etc.)

La opción de Break Setting, esta para poner una o mas paradas a lo largo del código. Uno corre un programa hasta que esta llega a un Break Point. También lo podemos poner presionando con el botón derecho del mouse sobre la línea de código que queremos que se detenga. Esta opción se utiliza mucho cuando hay retardos de tiempo, o tiempos muertos del micro (por ejemplo si prendemos un led debemos esperar al menos 250mS para apagarlo ya que sino no lo veriamos pues la velocidad del micro es muy grande)

También tengamos en cuenta que las cosas más comunes las podemos hacer desde la Barra de comandos. Para saber que es cada una de estas cosas nos posicionamos sobre el icono y sin apretar nada nos aparece un mensaje en la Barra de Estado (es la que esta mas abajo de toda la ventana).

En el proyecto anterior veremos que sucede paso por paso:


Así es como estamos en un primer momento. Si no estuviésemos así lo que debemos hacer es ir a la Barra de Herramientas, Debug, System Reset. También vale acomodar las ventanas a gusto.


Pasamos el primer paso y vemos que han cambiado algunas cosas: Pcl (Contador del programa), Status (modificó el bit 5) (estamos preparados para modificar el banco uno), y como era de esperar hizo un ciclo de reloj en el tiempo de 1uS.


Aquí modificó nuevamente a Pcl, y ya modificó el Tris A de modo que el bit 2 se puso en posición de salida. En este caso vemos que se ha modificado también el registro T0pre. Este registro es el contador del Timer 0 que no se esta utilizando pero al ser un contador esta contando todo el tiempo. El reloj esta en el segundo ciclo.


Al tercer ciclo ya nos encontramos con que cambio nuevamente el T0pre, el bit 5 del registro Status (se posiciono en el banco 0 del banco de memoria) y el pcl.


Han cambiado algunas cosas. Por lo pronto apareció el Program Memory Window, indicando que llego a la sentencia End. Por otro lado Cambio el Port A poniendo en 1 el bit 2. También cambio el contador de programa y el Timer 0 aunque nosotros no lo utilicemos. Nos encontramos en el cuarto ciclo de trabajo, es decir que nuestro programa tardo 4 micro Segundos en encender un led. Vale aclarar que mas adelante encenderemos varios leds en un solo ciclo de trabajo.

Bien ya hemos simulado nuestro proyecto. Los invito que lo modifiquen a gusto poniendo mas puertos como salida y escribiéndolos uno a uno.

Entre otras cosas, tambien podremos simular botones, switches o pulsadores como si estos estubieran conectados a ciertas patas del micro. Es facil de utilizar.
Una vez que estemos corrindo el programa, vamos al menu de herramintas a Debug-Simulator Stimulus - Asynchronocs Stimulus y alli aparece un recuadro con 12 botones. En ellos con el boton derecho del mouse sobre uno de los botones, tendremos varias opciones:

Assing pin: sera el pin que deseas estimular con ese boton.
Pulse: Es como si fuera un boton sin retencion. Cuando lo aprietas es uno cuando lo sueltas es un cero.
Low - high: pone un alto o un bajo en el pin asignado. Si ya tiene un bajo o un alto, este permanecera invariable.
Toggle: Cambia de uno a cero y de cero a uno depende de lo que tenga actualmente.

Ahora que les parece si hacemos un proyecto de mas atractivo. No se lo pierdan o se les caerán los ojos.


Proyecto MegaPower



Si deseas podes escribirme y dejarme un mensaje, tu duda o bien tu proyecto para que todos lo conozcamos


Como colaborar

Atención profesionales y aficionados a la electrónica!

En andres.moraldo.com.ar estamos buscando nuevos autores para nuestros artículos. Si creés que tenés buenos conocimientos de electrónica de los que los demás puedan aprender, no te pierdas esta oportunidad de colaborar con la comunidad de aficionados y profesionales en Internet, y de hacerte conocer en la misma.

Si te interesa la propuesta, envíanos un mail a andres@moraldo.com.ar y contanos sobre qué temas te gustaría escribir, y pronto recibirás un mail nuestro contándote qué podemos hacer para que puedas volcar tus conocimientos en un artículo, y publicarlo en este sitio lo más pronto posible. Puedes encontrar mas informacion en esta página.

En este momento la comunidad de electrónicos en Internet es prácticamente nula, ayudános a hacer de este sitio el punto de encuentro internacional de los amantes del transistor. Esperamos sus mails!

Andres Moraldo
andres@moraldo.com.ar
www.andres.moraldo.com.ar