TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Shardik en 22 de Noviembre de 2006, 17:47:22

Título: Simular flujo de datos en MPLAB
Publicado por: Shardik en 22 de Noviembre de 2006, 17:47:22
Alguien sabe como simular una "inyeccion" de datos por un PIN, o directamente en un registro, en MPLAB?

Necesito meter los datos de un paquete TCP/IP por el bus SPI y trabajar con ellos, pero antes necesito simularlo todo.
Título: Re: Simular flujo de datos en MPLAB
Publicado por: BrunoF en 22 de Noviembre de 2006, 20:01:43
Hola. Si, es posible.
Primero debes activar el simulador en el MPLAB.
Vete al menú Debugger->Select Tool->MPLAB SIM.
Esto activará el simulador y aparecerá una nueva barra de herramientas para la simulación.

Es muy útil declarar BreakPoints en los lugares en los que quieres que el simulador se detenga. Esto acelera mucho el análisis de la simulación.

Luego de activar el simulador ensambla el archivo ASM(puedes hacerlo antes de activar el simulador también).

Luego, dependiendo la versión de MPLAB que tengas, la inyección de valores a registros o pines está ubicada en distintos lugares por lo que veo. En mi versión 7.50 ambos se encuentran dentro del menú Debugger->Stimulus.

Haciendo click en New WorkBook accedes a un conjunto de solapas que permiten simular muchas cosas. Como inyección de registros(solapa Register Injection), cambiar el estado lógico de un pin I/O(solapa PIN/Register Actions y/o Advanced Pin/Register).

También verás que hay muchas cosas más. Todas son útiles pero pueden requerir de cierta paciencia y prueba y error hasta encontrarle la mano a cómo funcionan.

También hay otras herramientas muy útiles como el Debugger->StopWatch que muestra cantidad de lineas simuladas hasta el momento, que puedes usar para medir tiempos.

Para ver el valor de ciertos registros(sean SFR o GPR) tienes una herramienta fácil en View->Watch. Allí ingresas o bien el nombre de la variable en Symbol Name o la dirección de memoria en Address.

Otra que utilizo yo es la View-> Hardware Stack. Que muestra la PILA del PIC. La uso especialmente para ver cuántos niveles de anidación máxima poseen algunos programas extensos.

En fin, posee además ventanas que grafican el estado de los pines que definas, seguimiento de las líneas ejecutadas por el simulador, etc...
Son demasiadas como para explicarlas todas, pero todas son muy útiles.

Saludos.








Título: Re: Simular flujo de datos en MPLAB
Publicado por: Shardik en 22 de Noviembre de 2006, 20:47:33
Citar
Haciendo click en New WorkBook accedes a un conjunto de solapas que permiten simular muchas cosas. Como inyección de registros(solapa Register Injection), cambiar el estado lógico de un pin I/O(solapa PIN/Register Actions y/o Advanced Pin/Register).

He llegado hasta ese punto, y he conseguido manejar el PIN/REGISTER, que pone un valor en un registro en el momento que le digas, he conseguido por ej. que meta a X segundos, un valor por ej. 01010101 en el registro SSPBUF (Donde se guardan los datos que recibes por SPI). Pero lo que yo necesito es meter una inyeccion de datos que tengo en un .txt , que supongo que es con Register Injection, pero no se manejar este ultimo



Título: Re: Simular flujo de datos en MPLAB
Publicado por: BrunoF en 22 de Noviembre de 2006, 21:51:16
Bueno, pero el MPLAB solo permite ciertos formatos de archivo para insertarlos como Workbooks.

Podrias "engañar" al MPLAB, creando un pequeño archivo .sbs en la primer solapa, y fijandote con el bloc de notas el contenido. A partir de alli modificarlo debidamente(destaco que el archivo dice: DO NOT EDIT! :D) pero he probado insertarle unos datos desde el bloc de notas, y el MPLAB se lo ha digerido bien.

Saludos.