Autor Tema: Programa en ASM anda en simulador pero no en el pic16f887  (Leído 4337 veces)

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

Desconectado gonzalitomryo

  • PIC10
  • *
  • Mensajes: 12
Programa en ASM anda en simulador pero no en el pic16f887
« en: 08 de Febrero de 2010, 21:33:37 »
Buenas a todos, estube buscando antes de publicar mi consulta pero no encontre algun post similar.

Estoy haciendo un aparato para un trabajo de la facultad q consiste en un detector de monoxido de carbono. utilizo un sensor TGS 203 el cual va conectado al PIC16F887. Tengo conectado al PIC una pantallita LCD, un teclado matricial, y un MAX232 con el cual adapto la coneccion RS232 a la PC.

El programa lo estoy haciendo en ASSEMBLER ya que es una de las consignas del trabajo a realizar, utilizar este lenguaje y no poder utilizar Nipple.

El programa consta de vvarias rutinas, una para el teclado, otra para la LCD, otra para la deteccion del dato del sensor. Trabajo con interrupcion del TMR0 para hacer un Reloj a tiempo Real.

Tengo todo el programa ordenadito, separado en paginas ya q estoy utilizando el PIC16f887 el cual tiene 4 paginas para ordenar el codigo del programa.
Utilizo el MPLAB para compilarlo y sale todo al pelo. Cargo el .hex en el PROTEUS donde simulo el circuito y anda todo al pelo, en la pantallita aparece el reloj funcionando, me aparece la medida (simulada) del monoxido, puedo setear la hora como yo deceo...anda toodo(menos la coneccion serie q aun no le hice)
El problema es cuando cargo el archivo .hex al pic.

Conecto el pic y en la LCD el reloj me queda en 00:00:00, nunca arranca, no me deja setear la hora y no me hace lectura del gas... o sea...algo esta mal q no anda bien diria un profesor mio..

la verdad no entiendo porq en el simulador anda todo al pelo(obvio q puede ser porq no es la realidad) pero no anda en el circuito real...si alguien puede darme alguna ayuda se lo agradeceria ya q estoy a una semana de presentar el trabajo este. Si es necesario ver el codigo pidanlo nomas no tengo drama en subirlo.

Desde ya muchas gracias


Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #1 en: 08 de Febrero de 2010, 21:37:57 »
Revisa si es correcta la configuración de Fuses, si usa reloj externo (XT o HC), si está habilitado el Mcrl, ect. Dependiendo de eso hay que revisar si es correcto el hardware.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado gonzalitomryo

  • PIC10
  • *
  • Mensajes: 12
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #2 en: 08 de Febrero de 2010, 22:48:30 »
el reloj es interno...

yo antes de separarlo en paginas lo tenia todo derechito al codigo...andaba bien el reloj en el circuito, pero cuando agregaba la rutina de setear la hora ahi me pasaba lo mismo q ahora...es decir, q cuando agregaba codigo, en el simulador andaba pero en el circuito no. Ademas los fuses fueron analizados mas de una vez y son los correctos.

circuito no tiene mucha ciencia...en el puerto B esta conectado el teclado matricial, por el puerto D envio los datos a la LCD, dos pines del puerto C se utilizan para el control de la LCD y se dejan libres los pines q son especificos para la coneccion serie cuando lo haga.
Por el puerto A se utiliza una entrada analogica, las tensiones de referencia externas y nada mas...

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #3 en: 08 de Febrero de 2010, 23:24:35 »
Hola, seguro tenes alguna llamada a una tabla, y esta en otra pagina, o en un cambio de pagina...
yo te recomendaria que lo "simules" con el mplab.... paso a paso, para ir verificando dichos saltos.. (escribo sin conocer el codigo....)

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado gonzalitomryo

  • PIC10
  • *
  • Mensajes: 12
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #4 en: 09 de Febrero de 2010, 00:21:17 »
ya controle todos los saltos a llamadas...utilizando el pagesel antes de cada call...

subo el codigo para ver si me dan una mano.


Desconectado gonzalitomryo

  • PIC10
  • *
  • Mensajes: 12
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #5 en: 09 de Febrero de 2010, 00:33:53 »
explico un poco el codigo...

en el programa principal hay un bucle infinito q espera q se toque una tecla para empezar a setear la hora, de lo contrario solo sale de ese bucle cuando salta la interrupcion del TMR0 q se utiliza para controlar el reloj...dentro de la interruocion tb hay un contador q cuenta primero hasta 60 segundos y envia una señar por una linea del puerto A, luego al llega a contar 89.5 segundos envia otra señal por el puerto A y luego a los 90 segundos...estas son señales q se utilizan para controlar el sensor , nada mas.

hay una rutina para el teclado, una rutina para la LCD, una para la toma del dato, una para la conversion del dato. falta agregare la parte de comunicacion serie con la PC, q tengo el codigo pero no lo meti en este aun....si llego a tener problemas para eso tb pedire ayuda...

Desconectado gonzalitomryo

  • PIC10
  • *
  • Mensajes: 12
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #6 en: 11 de Febrero de 2010, 15:58:08 »
bueno, problema de circuito no es, porq una parte esta andando...es decir...puedo controlar las señales q envio al sensor y en la pantalla me aparece la medicion...lo unico q no me anda ahora es el reloj...es decir...en la pantalla me queda HORA   00:00:00 y no abanza...

la interrupcion del TMR0 tiene q estar andando sino no andaria la parte de las señales q controlan el sensor...

si alguien puede ver el codigo en al parte de mostrar la hora y me da una mano se lo agradeceria...

Desconectado gonzalitomryo

  • PIC10
  • *
  • Mensajes: 12
Re: Programa en ASM anda en simulador pero no en el pic16f887
« Respuesta #7 en: 05 de Marzo de 2010, 00:09:20 »
ya esta...problema solucionado...tenia mucho codigo dentro de la interrupcion...no se porq hice eso...pero bueno...trabajo finalizado y aprovado con 92%...asi q gracias...

no se como cerrar los temas...pero este podria quedar cerrado...adios


 

anything