Autor Tema: Simulacion UART/USART en MPLAB SIM  (Leído 2927 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Pedro_T

  • PIC10
  • *
  • Mensajes: 3
Simulacion UART/USART en MPLAB SIM
« en: 09 de Febrero de 2007, 14:10:53 »

Hola a Todos, quiero agradecer a todos por este estupendo foro...

    ..tengo un pequeño problemita, estoy trabajando en C, en un codigo para tx y rx caracteres... y estoy tratando de simularlo en MPLAB SIM, con la transmision no tengo problemas lo que no he podido conseguir es recibir caracteres, he seguido los pasos que menciono el amigo gfp (http://www.todopic.com.ar/foros/index.php?topic=4731.0)... Sigo los pasos, en el stimullus controler habilto el RCREG introduzco un caracter y presiono "Fire", lo que correctamente me notifica en el output de MPLAB SIM, vuelvo  a la ejecucion del programa, pero no pasa nada con el registro RCREG, (en la ventana de SFR)... he probado muchas cosas pero sin resultados, por favor si alguien podria darme una manito, y/o decirme que decirme que estoy haciendo mal o que me falta, le agrecederia mucho...

       Tambien, el dispositivo que estoy usando es un 16F876A, o sera que esta opcion de simulacion en el MPLAB SIM es solo posible para los 18FXXX?....alguien lo sabe?

      Desde ya muchas gracias..
Nuestra recompensa se encuentra en el esfuerzo y no en el resultado.
Un esfuerzo total es una victoria completa." Mahatma Gandhi

Desconectado FrancoFranco

  • PIC10
  • *
  • Mensajes: 1
Re:Simulacion UART/USART en MPLAB SIM
« Respuesta #1 en: 06 de Abril de 2021, 12:22:49 »
Hola con  todos...Se que esta pregunta tiene años y no tenia respuestas, yo también eh tenido el mismo problema y llegue aquí con las esperanzas de encontrar algo. Sucede que di con la solución que tenia en común con el amigo Pedro, espero que le sirva a alguien mas.
(leia el foro por varios años desde el 2016 aprox, ahora me toca aportar algo)

Lo que hice fue cargar un "direct menssage" en el 'stimulus' .( Debugger>>stimulus-->Asynch, seleccionas el registro RCREG y direct menssage) ahi pones un dato por ejemplo "T" en ascii.
Le das Fire ">" a tu línea...
Luego tienes que poner un breakpoints ( La bolita roja con una "B" ) en la línea del vector de interrupción, la 4 comúnmente .
Le das 'RUN'al Mplab Sim, y este avanzara hasta el breackpoint. veras que llegaste a tu interrupción de recepción por RC  :-)
Si te fijas bien tendrás el dato en tu registro RCREG y obviamente tu bandera RCIF de interrupción activada.

Observaciones: (use una velocidad de 9600 baudios) (4mhz)(programa principal vacía ) (ASM).
Utilice la herramienta "stopwatch" ( Debugger>>stopwach) para ver cuantos ciclos pasaba en ese lapso hasta llegar a la interrupción, y me arrojo unas 1056 líneas de ciclo de instrucción usadas, sospecho que son la cantidad de ciclos utilizadas al recibir la trama completa del dato por el modulo usart , pues al parecer al darle "fire" al dato este no se mueve instantáneamente, sino que tarda como el hardware del pic lo hiciera.

OBs 2:
Realice el paso anterior pero manualmente o  por animación línea por línea y llegue a lo mismo, ocurrió la interrupción en la 1056 línea instrucción realizada.
Eso es todo, ojala que les sirva esta información a otras personas.


Darlyn Franco


 

anything