TODOPIC
Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: PicMinor en 29 de Junio de 2012, 11:31:01
-
¡ Saludos al foro !
Tengo un código que básicamente es un bucle de detección de causas de Reset después de un sleep y me ocurre lo siguiente:
Si lo simulo mediante el Simulador del MPLAB (El MPLAB SIM) se va reseteando al WDT_FROM_SLEEP mediante el WDT cada 18 ms que es lo correcto.
Si lo simulo mediante el VSM del Proteus me salta a WDT_TIMEOUT y no puedo medir cada cuánto me salta.
¿Hay algo que pueda estar haciendo mal o es una limitación del propio simulador?
-
Añado al post anterior que he conseguido medir el retardo con el Proteus y es de... 576ms!!, es decir, 32 veces mayor que los 18ms asignados al WDT.
-
Puedes dejarnos un ejemplo para ayudarte. Así, con los datos que aportas, es un poco difícil darte ninguna pista sobre el asunto.
-
Hola
En las opcionew de configuracion del PIC, cuando trabajs con el ISIS, has puesto el valor correcto para el cristal de oscilacion?
saludos
-
¡ Gracias por responder !
Adjunto un fichero muy simple en c y un diseño en Isis. Si generamos un proyecto en MPLAB para el micro PIC16F886 y usamos el debugger MPLAB SIM veremos que al arrancar pasa por el NORMAL_POWER_UP y luego por el WDT_FROM_SLEEP que es lo correcto. Hay que configurar el debugger a 8MHz y el Watchdog a 18 ms.
Sin embargo si usamos el debugger Proteus VSM veremos que al arrancar pasa por NORMAL_POWER_UP (Que es correcto) pero luego salta a WDT_FROM_SLEEP lo que le cuesta 576ms que son 32 veces más.
¡ Gracias por anticipado !
-
Por favor, serías tan amable de colgar también el fichero cof para ver la simulación completa. Gracias
-
¡ Gracias por responder !
Os adjunto un rar con el proyecto completo del MPLAB. Está preparado para cargar el Proteus pero basta con cambiar en la opción Debugger a MPLAB SIM para comprobar lo que os comento. Añadir BreakPoints en las opciones del case.