Últimos Tutoriales
Chat
Licencia
| Programación PIC en C - Depuración de programas con Proteus y CCS |
| Escrito por biblioman |
|
Página 7 de 18
Una vez iniciada la parte de prácticas vamos a seguir con la teoría, pero antes he incluido este pequeño artículo sacado de un video tutorial que encontré en Internet y que he adaptado al compilador CCS, el video tutorial lo colocare en la sección descargas para el que lo quiera ver. Pues, una vez dicho esto vamos a empezar. En la última práctica que hemos visto (el uso del TMR0 como contador) vimos que el entorno de Proteus nos proporciona una ventana de visualización del estado de los registro SFR de nuestro PIC , muy útil cuando estamos depurando nuestro programa, pero Proteus nos proporciona más ventanas para ver el estado de los registros de nuestro PIC que podemos acceder a ellas por medio del menú Debug --> PIC-CPU cuando estamos ejecutando nuestro programa en el modo de simulación paso a paso ó cuando hemos pulsado el botón de pausa, una vista condensada de todas esas ventanas la tenemos en la figura de abajo:
![]()
Como vemos aparte de poder ver el estado de los registros SFR del PIC podemos ver el estado de la memoria EPROM del PIC, El contenido de la memoria de programa (donde se encuentra grabado de forma permanente nuestro programa ), el estado de PILA (útil cuando se trabaja con interrupciones y funciones), otra ventana nos muestra el estado de la memoria RAM reservada a los datos ó registros de propósito general (GPR) en formato hexadecimal y otra donde podemos ver el estado de las variables que tenemos activas en ese momento, recordar que si utilizamos variables locales por ejemplo dentro de una función, estás se destruirán al salir de la función. Pero todo esto como he dicho lo tenemos cuando estamos ejecutando nuestro programa en el modo paso a paso ó tenemos nuestro programa en pausa.
Si estamos en modo Run e intentamos acceder a estas ventanas vemos que están deshabilitadas:
¿Qué otro sistema tenemos para depurar nuestros programas? Pues bien una manera que siempre podemos utilizar es utilizar la función printf como herramienta de depuración, es decir, ponemos la función printf en determinadas partes del programa donde queramos saber el estado de una o varias variables y por medio de la terminal podemos saber el valor que van tomando, una vez comprobado que nuestro programa funciona como nosotros queremos borramos las funciones printf que hayamos introducido con propósitos de depuración.
Vamos a ver cómo podemos utilizarla. Para ello compilaremos el siguiente ejemplo:
![]() Esto hará que nos aparezca el archivo Symbol Map en modo lectura, en este archivo podemos ver en qué posición de memoria se guardarán las diferentes variables que tengamos declaradas en nuestro programa, este archivo se actualizará en cada compilación que hagamos.
![]()
Como vemos en la figura de arriba las variable X e Y tienen asignadas las direcciones de memoria 0x011 y 0x012 en la memoria RAM de propósito general (GPR), que como ya sabemos es la que el programador dispone para almacenar los valores de sus variables.
![]()
Nos aparecerá una nueva ventana donde iremos añadiendo las variables con su dirección correspondiente:
![]()
Una vez añadidas las variables podemos ver el valor que van tomando mientras ejecutamos nuestro programa en la ventana Watch Windows, según se muestra en la figura de abajo:
![]()
Pero tenemos aún mas opcciones, por ejemplo podemos establecer condiciones para ello hacemos clic en la variable con el botón derecho y seleccionamos Watchpoint Condition… Nos aparecerá la ventana que se muestra abajo:
![]()
Por ejemplo yo la he configurado para que cuando la variable X sea igual a cinco se pare la simulación, pero admite más condiciones solo hay que ponerse y experimentar con las diferentes opciones que tenemos, también decir que podemos hacer que la ventana Watch Windows nos muestre los registros SFR que nos interesan junto con las variables que nosotros hemos declarado, en fin muchas posibilidades de depuración. El conocer estas herramientas nos puede facilitar mucho el aprendizaje porque vemos la secuencia real que sigue nuestro programa, que algunas veces puede que no coincida con nuestra lógica de funcionamiento del programa.
Nota: el video tutorial lo podeis descargar desde:
Descargas --> Apuntes --> Electrónica --> Proteus --> Uso de Watch Windows en Proteus.zip
Como siempre espero vuestros comentarios y os agradecería que las preguntas que tengáis sobre estos temas, pues las hagáis directamente en el foro que para eso está.
Un saludo a todos y hasta el próximo articulo.
|
| Última actualización el Viernes, 12 de Marzo de 2010 21:26 |

Programación PIC en C







