TODOPIC
Simuladores, editores de PCB, etc => Simuladores de circuitos => Proteus ISIS => Mensaje iniciado por: jmpmscorp en 19 de Junio de 2009, 01:42:17
-
Hola de nuevo señores.
Resulta que estoy realizando un pequeño programa para manejar un expansor de bus a 16 bits de I2C y no tengo problemas cuando ejecuto instrucciones para manejar los 8 bits del puerto A. Sin embargo cuando intento escribir los pines del puerto B, me sale el siguiente error:
Internal Exception:acces violation in module 'MCP23X17'.dll
Quisiera saber si ese error es por un problema en mi codigo fuente o es algun tipo de error en el dll del dispositivo. Si fuese por un error del dll ¿como podria solucionarlo?. Tengo el proteus 7.5 SP3.
Gracias y saludos.
-
Hola.
El error te sale en modo debug cierto? ... es decir estas verificando el codigo paso a paso y cuando llega a ese punto ... chaaannn el error?
Saludos
-
Buenas MLO.
Pues no, me salta el error cuando lo ejecuto en modo continuo. Lo probe con el proteus 7.2 SP0 y me salto el error. Pense que seria un error en las librerias del dispositivo e instale el 7.5 SP3 pero me sigue saltando el mismo error. Agradezco cualquier solucion. Muchas gracias.
Saludos.
-
:?
Pues pareceria error del la dll, a mi me suele salir pero en el modo debug paso a paso ... casi siempre por los tiempos de sincronizacion entre los componentes ...
-
Hola de nuevo.
Os añado el codigo y la simulacion haber si alguien puede probarlo y le pasa lo mismo. Gracias.
-
es extraño pero ya descargue la simulacion y solo funciona unos segundos y marca el mismo error que comenta aqui el compañero
-
Por favor, alguien q tenga alguna version diferente, me podria decir si le funciona o le sale el mismo error?? Necesito poder simularlo antes de pasarlo a la PCB para saber si funcionara correctamente. Muchas gracias.
-
Hola
Resulta que tengo un problema muy muy similar
Practicando con CCS+Proteus 7.5 SP3 en un 16F877 encontré el siguiente problema cada vez que utilizaba el Puerto E:
(http://i270.photobucket.com/albums/jj103/biclanos/Circuitos%20y%20Esquemas/Dibujo.png)
Internal Exception: access violation in module 'PIC16.DLL'
Probé el programa en una simulación exclusiva y aparte con un único PIC 16F877 y el problema continuaba.
Para estar seguro que el CCS no tenía nada que ver, escribí un pequeño codigo en ensamblador manejando el Puerto E exclusivamente y lo simulé, con lo cual pude constatar que el problema se repetía solo cuando se lee/escribe el Puerto E bit a bit, osea en instrucciones como:
bsf
bcf
btfsc
btfss
o cuando la operación involucra solo uno de los bits como:
movlw 0x01
xorwf puertae,1
Esto lo pude ver ejecutando paso a paso el programa des-ensamblado: cuando llegaba a dichas instrucciones, el error saltaba... (que si le ejecutas de modo continuo obviamente de frente te muestra el error)
Sin embargo no ocurre ningún error cuando de golpe se modifica todo el registro PORTE (0x09), así por ejemplo:
movlw b'10101010'
movwf puertae
...
Aqui les adjunto el código de mi programa prueba donde todas las instrucciones precedidas con ; (como si fueran comentarios) ocasionan el problema antes mencionado...
list p=16f877a
trise equ 0x89
puertae equ 0x09
trisd equ 0x88
puertad equ 0x08
status equ 0x03
org 00
inicio
bsf status,5
movlw 0x00
movwf trise
movlw 0x00
movwf trisd
bcf status,5
movlw b'10101010'
movwf puertae
; movlw 0x01
; xorwf puertae,1
; bcf puertae,0
; bsf puertae,1
; bcf puertae,2
bcf puertad,0
bsf puertad,1
bcf puertad,2
nop`
goto inicio
end
Agradeceré mucho cualquier ayuda...
BRAULIO
PD:
:?
Pues pareceria error del la dll, a mi me suele salir pero en el modo debug paso a paso ... casi siempre por los tiempos de sincronizacion entre los componentes ...
MLO... parece que a ti te a pasado... ¿lograste solucionarlo finalmente?
-
Hola.
A mi me paso simulando RS485 paso a paso. Lo solucioné colocando BreakPoints entre los puntos en los que se generaba el error:
(http://img197.imageshack.us/img197/838/errordll1.png)
(http://img38.imageshack.us/img38/8076/errordll2.png)
Es decir, dejaba que el micro hiciera su trabajo en la linea donde, simulando paso a paso, me generaba el error en la dll.
Saludos
-
Es decir, dejaba que el micro hiciera su trabajo en la linea donde, simulando paso a paso, me generaba el error en la dll.
Chamfles... a mi me salta el error tanto simulando paso a paso como en la simulación continua :cry: ....
De todos modos gracias por la respuesta...
Salu2.
BRAULIO