Autor Tema: problema al simular  (Leído 2324 veces)

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

Desconectado inxanu

  • PIC10
  • *
  • Mensajes: 21
problema al simular
« en: 12 de Marzo de 2008, 08:36:55 »
Hola,

Estoy utilizando proteus para simular un pic16f877,  las entradas al micro se las doy desde dos comparadores regulados por potenciometros, los cuales comparan la tension de entrada que yo le doy con una de referencia, el valor entra por el puerto A del micro. Mi problema esta en durante el codigo le cambio el valor de ADCON0, para que empiece la conversion de datos, y testeo el bit dos de adcon0 para ver si ya ha terminado o no la conversion. Pero al simular y ver los valores en los registros, me doy cuenta de que no carga el calor cuando se lo indico, y despues nunca indica que ha terminado la conversion. por lo que se me queda en ese bucle y no puedo continuar la ejecucion, ni la simulacion.

Este es el codigo para leeadc:

LeeADC0   MOVLW   b'00000001'   ; Detención de cualquier conversión en curso
   MOVWF   ADCON0
   MOVLW   0XC1      ; Coloca 11000001 en ADCON0,lo que configura la
   MOVWF   ADCON0      ;conversion de datos por el puerto RA0
   BSF   ADCON0,2   ; Inicia la conversion
wait   BTFSC   ADCON0,2   ; Testea si sigue en curso la conversion
   GOTO   wait      ; espera hasta que acabe la conversion
   MOVF   ADRESH,W   ; Guarda los resultados , los 8 bits altos
   RETURN

Me podriais ayudar?

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: problema al simular
« Respuesta #1 en: 13 de Marzo de 2008, 11:07:39 »
inxanu faltaría ver como está configurado el ADCON1, tal vez no lo tengas con justificación izquierda y por ende si el valor analógico es pequeño leyendo el ADRESH solo leerás 0.

Otra observación, si lees el datasheet, fíjate que corres con 2 peligros

1) Si el A/D está corriendo al ingresar a esta rutina, lo detendrás

2) No veo razón por la cual encender y/o detener el A/D cada vez que ingresas a leer el A/D.  Te recomiendo que si lees solo un canal A/D no reconfigures el ADCON0 todo el tiempo.

3) Si has abortado la conversión, tendrás que esperar al menos 2TAD para volver a iniciarla, te pego el extracto del datasheet donde se menciona


Clearing the GO/DONE bit during a conversion will abort the current conversion. The A/D result register
pair will NOT be updated with the partially completed A/D conversion sample. That is, the ADRESH:ADRESL
registers will continue to contain the value of the last completed conversion (or the last value written to the
ADRESH:ADRESL registers). After the A/D conversion is aborted, a 2TAD wait is required before the next
acquisition is started.


4) El mal funcionamiento en el simulador no implica necesariamente que el código esté mail, puede ser que no sepas usar el simulador, que le falte algo al esquemático y que el proteus lo necesite o que el proteus tenga un bug. 

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado inxanu

  • PIC10
  • *
  • Mensajes: 21
Re: problema al simular
« Respuesta #2 en: 13 de Marzo de 2008, 14:20:30 »
Muchas gracias maunix,

He intentado con los valores para el adcon1 (0x80 y 0x00) pero no he logrado ningun resultado distinto al que tenia...

Incluso le he introducido un retardo de 2ms (xms) para asi darle tiempo a que pueda consumir los ciclos de reloj necesarios... la modificacion es:


LeeADC0   MOVLW   b'00000001'   ; Detención de cualquier conversión en curso
   MOVWF   ADCON0
   MOVLW   25
   call    xms      ; Espera
   MOVLW   0XC1      ; Coloca 11000001 en ADCON0,lo que configura la
   MOVWF   ADCON0      ;conversion de datos por el puerto RA0
   BSF   ADCON0,2   ; Inicia la conversion
wait   BTFSC   ADCON0,2   ; Testea si sigue en curso la conversion
   GOTO   wait      ; espera hasta que acabe la conversion
   MOVLW   2   
   call   xms
   MOVF   ADRESH,W   ; Guarda los resultados , los 8 bits altos
   RETURN

Pero es que no consigo q se modifique el registro una vez que ejecuto.... te muestro un pantallazo de las pruebas en proteus....

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: problema al simular
« Respuesta #3 en: 13 de Marzo de 2008, 16:51:54 »
Pero es que no consigo q se modifique el registro una vez que ejecuto.... te muestro un pantallazo de las pruebas en proteus....

No me sirve de nada la pantalla de proteus ya que no lo uso, pero fíjate que si quieres que revise como está configurado tu pic para el conversor necesitaré más parte del código

1) Como configuras el PortA
2) Cómo configuras el ADCON1
3) Como configuras el ADCON2
4) Qué tensión le quieres ingresar al PIC y en qué canal analógico.


- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado inxanu

  • PIC10
  • *
  • Mensajes: 21
Re: problema al simular
« Respuesta #4 en: 14 de Marzo de 2008, 06:19:56 »
Hola,

Te inclui el pantallazo de proteus pq, ahi figura en una de las pantallas el codigo, con la configuracion del ADCON1 ( he probado con 0x80 y con 0x00), la del ADCON0 (primero le lanzo un 0x01 y despues lo configuro con 0xC1, codigo en el anterior post)

El TRISA 0xCF, y lo valores de tension que le entran por el puerto A pueden variar enter 0 y 5 volt.

Si abres la foto adjunta, veras todo el principio del codigo para que puedas coger informacion y asi salvarme de esta "interrupcion" que me encuentro. Gracias-.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: problema al simular
« Respuesta #5 en: 18 de Marzo de 2008, 09:19:22 »
Hola,

supongo q te has quedado sin ideas para saber como puedo arreglar lo mio, verdad? estoy un pelin agobiado y no me vendria mal una mano....

Bueno muchas gracias por tu interes, y saludos desde españa!

La verdad es que tengo una vida y no me la paso en el foro, también a veces se me puede pasar un post por alto ¿no lo has pensado?

Por otra parte la pantalla que subiste no me sirve de poco o nada, ¿porqué?
a. El código tiene poca definición y me rompe los ojos verla
b. No me es suficiente para ver donde arranca tu pic, ver si está activo el wdt, ver cómo es el flujo completo del programa.

Con respecto a si se me acabaron o no las ideas, no lo puedo responder porque yo al ser yo no me puedo dar cuenta si tengo o no ideas o si mis ideas son buenas o no lo son... ¿o sí puedo darme cuenta?

Solo te puedo decir que he hecho andar el A/D de los pics hace mucho tiempo y aún me sigue andando...
También te puedo decir que mis incursiones en Proteus (por novato o bien por bug del proteus) no han sido buenas por lo tanto no es un tema que me interese ahondar en los bugs de un software que no uso!!! (nota 1)

Por último si pretendes que te ayuden y te traten bien te sugiero lo siguiente

1) Lee las reglas del foro

2) Respeta a los demás que al fin y al cabo somos personas y no estamos para responder todas las dudas de todas sobre pics! También debo comer, oír música, distraerme...

3) No cobramos por este 'servicio' de asistencia, lo hacemos por ganas, porque nos gusta compartir y porque esto es una pasión.  Cuando hablo en plural hablo por todos o la mayoría de los miembros del foro, en el cual nos une precisamente darnos una mano en lo que podamos.

4) Si pretendes más información y/o ayuda de mi parte te sugiero que cambies tus modales, te tomes algunas vitaminas de paciencia (de hecho si te quieres dedicar a este rubro necesitas SI o SI paciencia... no es para impacientes) y que subas tu código en un .zip así lo veo/vemos.
Si el código, en mi tiempo libre y cuando tenga ganas,  lo puedo simular bien en el MPLAB (la herramienta que yo uso) daré por terminado el tema por lo expuesto en (nota 1)
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado inxanu

  • PIC10
  • *
  • Mensajes: 21
Re: problema al simular
« Respuesta #6 en: 18 de Marzo de 2008, 16:33:21 »
Ante todo siento haberte dado la sensacion de que te exigia algo, estoy muy contento de haber encontrado una persona que me pueda ayudar en esto del mundo del PIC,

Muchas veces las cosas no son como se escriben si no como se leen, y siento mucho que no lo hayas leido por el lado amable, :-)

Espero que no guardes rencor a las palabras escritas, una vez mas te doy las GRACIAS por tu ayuda

Citar
Hola,

supongo q te has quedado sin ideas para saber como puedo arreglar lo mio ;) , verdad? estoy un pelin agobiado  :shock: y no me vendria mal una mano   :2] ...

Bueno muchas gracias por tu interes, :-/   y saludos desde españa!  :) :)

Si te sirve esa es la forma en la que queria que lo hubieses leido....

Volviendo a la parte en la que te pedia ayuda y siempre sabiendo que no es tu obligacion, pense que la imagen se veia mejor.... te adjunto el codigo para que le eches un ojito si puedes y si quieres (dado el malentendido)


Con respecto a simular en mplab, no consigo hacerlo pq me genera un error de fase, y no se bien a que se refiere.

Espero que aceptes las disculpas y que sepas que no ha sido mi intencion exigir nada a nadie de este foro.

Muchas gracias.

Desconectado inxanu

  • PIC10
  • *
  • Mensajes: 21
Re: problema al simular
« Respuesta #7 en: 15 de Abril de 2008, 12:56:03 »
up!!