Problemas de simulación con Proteus

Podrías enviármelo para ver si es mi proteus el que me esta fallando o es otra cosa.
Es al revés, deberías subir tu lo que has echo para poder revisar/ver el error(si lo hay) y donde radica este.

Si subo mi simulación lo mas probable es que no la puedas abrir ya que tengo una versión mas nueva que la tuya(8.12 y tu la 8.9).

si.JPG

Acá un video de como crear un componente simularle en Ares de Proteus.

 
Última edición:

En el video están los detalles de los valores

Es un convertidor. El problema es que no me marca nada en los medidores
Aqui mi simulación:

Este es el circuito que he recreado del video pero me marca cero en los 3 medidores de la izquierda y los del centro uno me marca una cantidad que no coincide con el del video. Estuve revisando si no tenga algo mal conectado o valores de piezas pero no logro encontrar la falla.
1641510205617.png

1641510530575.png

1641510552491.png
 

Adjuntos

  • Nuevo proyecto1.rar
    19.2 KB · Visitas: 1
Saludos amigos, tal vez le haya sucedido a alguien que un programa en pic c funcione correctamente en el protoboard, pero no quiera simular en Proteus? Lo casi lógico es que funcione en el simulador pero muchas veces no en la realidad. Lo cierto es que el programa en cuestión funciona muy bien en el protobard, pero cuando lo ejecuto en el simulador, todo funciona hasta el seteo de la hora y fecha, pero cuando "culmino" el seteo, todo se vuelve a cero. Como si no se hubiese aceptado el seteo. Gracias.

Debo mencionar que el código no es todo mío, sino adaptado de la web. Gracias.
 

Adjuntos

  • relojDS3231_877AReflector.rar
    20.9 KB · Visitas: 2

D@rkbytes

Moderador
Eso que está pasando es un problema muy común al trabajar con I2C en Proteus.
Se soluciona estableciendo las resistencias pull-up del bus como digitales.

Como no está trabajando el chip DS3232, cuando termina el seteo el valor leído siempre será 0

Nota: Lo pudiste haber notado desde que inicia la simulación.
 
Saludos amigos, tal vez le haya sucedido a alguien que un programa en pic c funcione correctamente en el protoboard, pero no quiera simular en Proteus? Lo casi lógico es que funcione en el simulador pero muchas veces no en la realidad. Lo cierto es que el programa en cuestión funciona muy bien en el protobard, pero cuando lo ejecuto en el simulador, todo funciona hasta el seteo de la hora y fecha, pero cuando "culmino" el seteo, todo se vuelve a cero. Como si no se hubiese aceptado el seteo.

Proteus no se lleva bien mezclando elementos analógicos con digitales.

A las resistencias R1 y R2 o bien las cambiás por resistencias PULLUP o cambiás el atributo de las resistencias por DIGITAL
reloj.jpg
 
Eso que está pasando es un problema muy común al trabajar con I2C en Proteus.
Se soluciona estableciendo las resistencias pull-up del bus como digitales.

Como no está trabajando el chip DS3232, cuando termina el seteo el valor leído siempre será 0

Nota: Lo pudiste haber notado desde que inicia la simulación.
Muchas gracias amigo D@rkbytes por tu respuesta, la pondré en práctica y me aplicaré más.
Proteus no se lleva bien mezclando elementos analógicos con digitales.

A las resistencias R1 y R2 o bien las cambiás por resistencias PULLUP o cambiás el atributo de las resistencias por DIGITAL
Ver el archivo adjunto 276938
Gracias amigo Eduardo. Les comentaré.
Proteus no se lleva bien mezclando elementos analógicos con digitales.

A las resistencias R1 y R2 o bien las cambiás por resistencias PULLUP o cambiás el atributo de las resistencias por DIGITAL
Ver el archivo adjunto 276938
Funcionó correctamente!!! Muchas gracias. Aun no entiendo cómo puede afectar ese cambio de análogo a digital en Proteus (porque se trata de una simple resistencia), seguiré investigando.
 
Última edición:
Saludos.

La variable PORTA permanece con el mismo valor('\0') cuando deberia cambiar su valor de la misma manera que lo hicieron las demas variables(que se encuentran en rojo) como se aprecia en la imagen adjunta.

Gracias.
 

Adjuntos

  • falla proteus debug.JPG
    falla proteus debug.JPG
    144.7 KB · Visitas: 10
Saludos.

La variable PORTA permanece con el mismo valor('\0') cuando deberia cambiar su valor de la misma manera que lo hicieron las demas variables(que se encuentran en rojo) como se aprecia en la imagen adjunta.

Gracias.

Quizás porque si pones a 1 el Bit 0 del registro TRISA convierte ese pin en entrada y no salida.
 
Pon un "break" para que el programa pare en la rutina de la interrupción. Si entra en la misma es que todo anda bien, sino es que esta mal configurada las interrupciones. Por lo pronto parece que entra porque el puerto A esta en 0.

El problema es que lo único que hace la interrupción es poner el bit 0 del puerto A en "0" por lo que si paras el programa luego de eso no hay nada que lo ponga a "1" y la variable PORTA estará en 0. (Todo eso suponiendo que la instrucción "bit_set()" maneje el registro "LATA" -Latch- haciendo todo automático).

Prueba con hacer un XOR con "1" para que el valor del puerto cambie cada vez que entre en la interrupción.
 
Arriba