Problemas con retardo (Assembler).

Importante: Publico esto por acá porque creo que mi problema se debe al simulador

Hola a todos, tengo el siguiente problema al simular el PIC 18F4550 en Proteus 7.6 y ruego que me ayuden.

Sucede que he utilizado la siguiente subrutina de retardo y antirrebote respectivamente:

Para 1 Seg


Delay_1S
clrf reg1
clrf reg2
clrf reg3
movlw .100
movwf reg3
TRES
movlw .97
movwf reg2
DOS
movlw .33
movwf reg1
UNO
decfsz reg1
goto UNO

call nobounce ;Acá empieza el chequeo
btfss PORTB,0 ;de pulsadores.
goto NEXT
goto PUL1
btfss PORTB,1
goto NEXT
goto PUL2
btfss PORTB,2
goto NEXT
goto PUL3


NEXT
decfsz reg2
goto DOS
decfsz reg3
goto TRES
Return



Para 20 mseg:


nobounce
clrf reg1
clrf reg2
clrf reg3
movlw .2
movwf reg3
Three
movlw .97
movwf reg2
Two
movlw .33
movwf reg1
One
decfsz reg1
goto One
decfsz reg2
goto Two
decfsz reg3
goto Three
Return


Y bueno, me parece que el problema no está en el código =/, pero proteus jamás se sale del bucle, decrementa y decrementa y aparece un mensaje de error diciendo que debido al overflow el micro está siendo forzado a resetearse. Espero sus prontas respuestas!

Si es necesario, publicaría el programa por completo y capturas de pantalla. Gracias de antemano.
 
Última edición:
Y que hay de la configuracion del WDT ) Watch Dog Timer) ??? como lo tienes ??? activo, inactivo ???
 
El watchdog está desactivado, el reloj es de 4 MHz y bueh =/ solucioné el problema de overflow, se debía a que estaba invocando muchas veces el retardo y como chequeaba los pulsadores y se salía, la pila se llenaba.

Sin embargo, sigue el problema del bucle infinito con los retardos y me tiene bastante preocupado. Creo que he cometido un error publicando en este subforo, debió haber sido en la zona de microprocesadores, mis disculpas!
 
Atrás
Arriba